express

Expressは、Node.jsにおける軽量Webアプリケーションフレームワーク

Express - Node.js Web アプリケーション・フレームワーク
ゼロからはじめるExpress + Node.jsを使ったアプリ開発 - Qiita

これで簡易Webサーバを作ってみる。

これまでは、グローバルでインストール(npm install -g)が多かったが、ここではローカルインストールとする。
まずは、npm initでローカルパッケージ管理できるようにする。

$ pwd
/home/bg1/project/cloud/github.com/Sample/express/express/express/src/express_
$ npm init
This utility will walk you through creating a package.json file.
It only covers the most common items, and tries to guess sensible defaults.

See `npm help json` for definitive documentation on these fields
and exactly what they do.

Use `npm install <pkg>` afterwards to install a package and
save it as a dependency in the package.json file.

Press ^C at any time to quit.
package name: (express_) express_
version: (1.0.0) 1.0.0
description: express sample
entry point: (index.js) index.js
test command: test
git repository: -
keywords: -
author: B.G
license: (ISC) MIT
About to write to
/home/bg1/project/cloud/github.com/Sample/express/express/express/src/express_/package.json:

{
  "name": "express_",
  "version": "1.0.0",
  "description": "express sample",
  "main": "index.js",
  "scripts": {
    "test": "test"
  },
  "repository": {
    "type": "git",
    "url": "-"
  },
  "keywords": [
    "-"
  ],
  "author": "B.G",
  "license": "MIT"
}


Is this OK? (yes) yes
$

mainはとりあえずindex.jsにしておく。
これでpackage.jsonができたとおもうので、Expressをインストール。

$ npm install express
npm notice created a lockfile as package-lock.json. You should commit this file.
+ express@4.16.4
added 48 packages from 36 contributors and audited 121 packages in 4.512s
found 0 vulnerabilities

$ ls
node_modules  package-lock.json  package.json
$

では、index.jsを書く。

requireで取得したexpressはこれ自体が関数の参照になっていて、express()でappオブジェクトが取得できる。
あとは、app.getで、「GETの'/'でアクセスしてきたら'ABCDE'を返す」、といったようなリクエストルーティングが簡単に書ける。
あとは、app.listenで3000番でリッスンする。

$ vi index.js
$ node index.js
Listen port number 3000

あとはlocalhostの3000にアクセスする。

expressサーバ
expressサーバ

このように'ABCDE'を返す簡易Webサーバができた。

Sample/express/express/express/src/express_ at master · bg1bgst333/Sample · GitHub