使用来自出口的快速中间件摩根

时间:2018-01-15 04:05:13

标签: javascript node.js express morgan

我打算在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文件的中间件。

1 个答案:

答案 0 :(得分:0)

您应该为中间件指定返回参数。

如果你打算只使用摩根的'微小'格式,那么就没有必要将它从不同的文件中分离出来。在server.js中试试这个,

app.use(morgan('tiny'))