『実践Node.jsプログラミング』(p.185〜)の写経。
connect.loggerは、morganになっております。ちなみに、これらは親切にConnectのReadme.mdにMiddlewareとして紹介されています。
npm install connect npm install morgan
余計なものがあったりしますが、『実践Node.jsプログラミング』(p.185〜)に対応する例。
var connect = require('connect') , morgan = require('morgan') , url = require('url') , fs = require('fs') , _ = require('underscore-node'); var log = fs.createWriteStream('./morgan.log', { flags: 'a' }); morgan.token('query-string', function(req, res) { return url.parse(req.url).query; }); function hello(option) { option = option || {}; if (_.isUndefined(option.name)) { option.name = 'Mayuyu'; } return function(req, res, next) { res.setHeader('Content-Type', 'text/plain; charset=utf-8'); res.end('Hello, ' + option.name + '!\n'); }; } connect() .use(morgan(':method :url :query-string :response-time ms', { stream: log })) .use(hello()) .listen(3000);
ちょっと間違えそうなのが、morgan()渡すオプション。写経本では、オプションとして{ format: ‘〜’ }のような記述をしていますが、formatは第1引数にそのまま渡して、その他のオプションを第2引数として渡します。