将请求记录到NodeJS Express

jei2mxaa  于 12个月前  发布在  Node.js
关注(0)|答案(4)|浏览(98)

我想这样记录所有请求:
第一个月
然而,在express中,中间件在请求被处理之前被调用,所以我不能得到真实的响应代码。我总是得到200。实现这一点的正确方法是什么?

5cg8jx4n

5cg8jx4n1#

你可以使用morgan来记录你的请求:

const morgan = require("morgan");
app.use(morgan('dev'));

字符串
欲了解更多文档,请访问morgan。Yo可能还对on-finished包感兴趣,该包可在请求完成时执行任意代码。

dced5bon

dced5bon2#

给你:

app.use((req, res, next)=> {
  console.log('I run on every request!');
  next();
})

字符串

wtlkbnrh

wtlkbnrh3#

让你的中间件在你的路由下面,并在你的路由中添加第三个参数在回调上,像这样:

app.get( "/", function( req, res, next ) {
  res.send(something);
  next();
});

app.use(function(req, res, next) {
  console.log('after request is done');
});

字符串

blpfk2vs

blpfk2vs4#

正如Edwin所说,你可以在不修改代码的情况下使用DEBUG环境变量来做同样的事情,就像这样:

DEBUG=express:* && node server.js

字符串

相关问题