我打算在morgan
应用程序中使用express
进行日志记录
我可以在morgan
文件中使用server.js
作为:app.use(morgan('tiny'))
,它可以正常工作。但是,我想将所有与日志记录相关的中间件放入名为logger.js
的文件中并使用它,而不会使server.js
文件复杂化。
所以logger.js
如下所示:
import morgan from 'morgan'
import express from 'express'
exports.morganLogger= function(req, res, next){
morgan('tiny')
next() // Also tried commenting: next()
}
并在server.js
import morganLogger from './logger'
中使用,并尝试app.use(morganLogger)
和app.use('\', morganLogger)
,但它是徒劳的,因为事实证明它不是集成中间件的正确语法!
在TypeError('Router.use() requires a middleware function but got a ' + gettype(fn))
时获得app.use('/', morganLogger)
,在TypeError: app.use() requires a middleware function
时获得app.use(morganLogger)
。
有没有办法解决这个问题,并使用morgan
作为express
来自外部js
文件的中间件。
答案 0 :(得分:0)
您应该为中间件指定返回参数。
如果你打算只使用摩根的'微小'格式,那么就没有必要将它从不同的文件中分离出来。在server.js中试试这个,
app.use(morgan('tiny'))