我正在尝试使用 morgan 记录对我的 api 服务器的请求。像这样配置我的路线;
app.use logger('dev')
app.use '/api/collab/dataobjects/:do', if config.disable_auth then authMid.noAuthCheck else authMid.authCheck
app.use '/api/collab/dataobjects/:do', queryRouter(config.testing)
app.use '/api/collab/dataobjects/:do', queryRouter()
app.use (req, res, next) ->
console.warn "Test"
err = new Error('Not Found')
err.status = 404
next err
app.use (err, req, res, next) ->
res.status(err.status || 500)
console.warn err
res.send {
message: err.message
error: err
}
摩根大体上按预期工作,但在少数路线上给出了一些无意义的输出;
POST /api/collab/dataobjects/1/update - - ms - -
在检查了一些时间之后,很明显,摩根在这些回复实际返回之前就记录了它们。为了解决这个问题,我app.use logger('dev')
在 api 路由之后移动了该行,但在错误捕获路由之前。放在那里,Morgan 将显示长请求的状态代码和大小,与以前不同,但现在在所有请求上它都不会显示所花费的时间;
获取 /api/collab/dataobjects/1 200 - 毫秒 - 4119
为什么 Morgan 没有显示响应时间,我该如何解决?