我计划在express应用程序中使用morgan来记录日志。
我可以在server.js文件中使用morgan作为: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()
} 并由import morganLogger from './logger'在server.js中使用,并尝试了app.use(morganLogger)和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。
有没有办法解决这个问题,并使用morgan作为express中间件从外部js文件。
发布于 2018-01-15 12:19:03
您应该为中间件指定一个返回参数。
如果你计划只使用'tiny‘格式的摩根,那么就没有必要在server.js中把它从不同的file.Try中分离出来。
app.use(morgan('tiny'))https://stackoverflow.com/questions/48256804
复制相似问题