request-time.js
module.exports = function(opts) { var time = opts.time || 100 return function(req, res, next) { var timer = setTimeout(function() { console.log( ' 33[90m%s %s 33[39m 33[91mis taking too long! 33[39m' , req.method , req.url ) }, time) var end = res.end res.end = function(chunk, encoding) { console.log(chunk + '(chunk)' + encoding + '(encoding)') res.end = end res.end(chunk + '(chunk)', encoding) clearTimeout(timer) } next() } }
sample.js
var connect = require('connect') var time = require('./request-time') var server = connect.createServer() /** * 日志记录 */ server.use(connect.logger('dev')) server.use(time({time: 500})) server.use(function(req, res, next) { if ('/a' == req.url) { res.writeHead(200) res.end('Fast!') } else { next() } }) server.use(function(req, res, next) { if ('/b' == req.url) { setTimeout(function() { res.writeHead(200) res.end('Slow!') }, 1000) } else { next() } }) server.listen(3000)