ExpressJS摩根仅记录路线请求

mdv*_*mdv 4 css node.js express

我使用NodeJS Web框架Expressjs和一个中间件将请求记录到文件(摩根).

我的conf:

// create a write stream (in append mode)
var accessLogStream = fs.createWriteStream(__dirname + '/logs/access.log', {flags: 'a'})

// setup the logger
app.use(logger('short', {stream: accessLogStream}))
Run Code Online (Sandbox Code Playgroud)

我的日志看起来像:

192.168.1.3 - GET /signup HTTP/1.1 304 - - 19.194 ms 
192.168.1.3 - GET /assets/css/admin/module.admin.stylesheet-complete.sidebar_type.collapse.no_min2.css HTTP/1.1 304 - - 15.500 ms 
192.168.1.3 - GET /assets/components/library/jquery/jquery.min.js?v=v1.0.3-rc2&amb;sv=v0.0.1.1 HTTP/1.1 304 - - 14.244 ms 
Run Code Online (Sandbox Code Playgroud)

有没有办法只记录路由请求?例如,如果用户输入/ signup /:

192.168.1.3 - GET /signup HTTP/1.1 304 - - 19.194 ms
Run Code Online (Sandbox Code Playgroud)

而不是路线所需的资产.

提前致谢.

Kri*_*ris 12

我有同样的问题,我找到了简单的解决方案,也许它会帮助别人.如果您使用express.static,您可以将此调用移至摩根调用之上,例如:

app.use(express.static(__dirname + '/public'));
...
app.use(logger('short'));
Run Code Online (Sandbox Code Playgroud)

不会记录静态资产.注意:您的资产文件必须存在,否则它们仍将被记录(在快递4.12中测试).