我想这样记录所有请求:第一个月然而,在express中,中间件在请求被处理之前被调用,所以我不能得到真实的响应代码。我总是得到200。实现这一点的正确方法是什么?
5cg8jx4n1#
你可以使用morgan来记录你的请求:
const morgan = require("morgan"); app.use(morgan('dev'));
字符串欲了解更多文档,请访问morgan。Yo可能还对on-finished包感兴趣,该包可在请求完成时执行任意代码。
dced5bon2#
给你:
app.use((req, res, next)=> { console.log('I run on every request!'); next(); })
字符串
wtlkbnrh3#
让你的中间件在你的路由下面,并在你的路由中添加第三个参数在回调上,像这样:
app.get( "/", function( req, res, next ) { res.send(something); next(); }); app.use(function(req, res, next) { console.log('after request is done'); });
blpfk2vs4#
正如Edwin所说,你可以在不修改代码的情况下使用DEBUG环境变量来做同样的事情,就像这样:
DEBUG=express:* && node server.js
4条答案
按热度按时间5cg8jx4n1#
你可以使用morgan来记录你的请求:
字符串
欲了解更多文档,请访问morgan。Yo可能还对on-finished包感兴趣,该包可在请求完成时执行任意代码。
dced5bon2#
给你:
字符串
wtlkbnrh3#
让你的中间件在你的路由下面,并在你的路由中添加第三个参数在回调上,像这样:
字符串
blpfk2vs4#
正如Edwin所说,你可以在不修改代码的情况下使用DEBUG环境变量来做同样的事情,就像这样:
字符串