1. natsuki_summer

    Posted

    natsuki_summer
Changes in title
+Node.js簡易HTTPサーバー ログつき
Changes in tags
Changes in body
Source | HTML | Preview
@@ -0,0 +1,63 @@
+# コード
+
+HTTPサーバー置きたい場所に下記を置いて実行
+
+```js:app.js
+const app = require('connect')();
+const morgan = require('morgan');
+app.use(morgan(':remote-addr - :remote-user [:date[clf]] ":method :url HTTP/:http-version" :status :res[content-length] ":referrer"'));
+app.use(require('serve-static')(__dirname))
+app.listen(3000);
+```
+
+```shell-session
+ $ npm install connect serve-static morgan
+ $ node app.js
+```
+
+他のターミナルから `curl localhost:3000` とか叩くと
+
+```shell-session
+ $ node app.js
+::1 - - [28/Sep/2018:12:40:16 +0000] "GET / HTTP/1.1" 404 139 "-"
+```
+
+こんなログが出る(ログフォーマットの詳細は[こちら](https://github.com/expressjs/morgan)を)
+
+# 確認環境
+Node v8.11.1
+connect@3.6.6
+serve-static@1.13.2
+morgan@1.9.1
+Mac OS 10.13.4
+
+Node.jsは公式(https://nodejs.org/en/ ) からインストーラー(LTSを選択)
+その後下記ターミナルからコマンド叩いてインストール
+`npm install connect serve-static morgan`
+
+
+# リクエストHTTPヘッダー見たい
+
+こう書き換える
+
+```js:app.js
+const app = require('connect')();
+const morgan = require('morgan');
+morgan.token('rawHeaders', function (req, res) {
+ return JSON.stringify(req.headers)
+})
+app.use(morgan(':remote-addr - :remote-user [:date[clf]] ":method :url HTTP/:http-version" :status :res[content-length] ":referrer" :rawHeaders'));-version" :status :res[content-length] ":referrer"'));
+app.use(require('serve-static')(__dirname))
+app.listen(3000);
+```
+
+JSON形式で出力
+
+```shell-session
+ $ node node app.js
+::1 - - [28/Sep/2018:12:42:45 +0000] "GET / HTTP/1.1" 404 139 "-" {"host":"localhost:3000","user-agent":"curl/7.54.0","accept":"*/*"}
+```
+
+## ユースケース
+
+OpenAPIのモックサーバー立てて開発してた時にこれを組み込んでた。