0

我打算morgan在应用程序中用于记录目的express
我可以morganserver.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.jsby中使用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 functionapp.use(morganLogger)
有没有办法解决这个问题并将morgan其用作外部文件的express中间件。js

4

1 回答 1

0

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

如果您打算只使用“小”格式的 morgan,则无需将其分离出不同的文件。在 server.js 中尝试此操作,

app.use(morgan('tiny'))
于 2018-01-15T04:19:03.177 回答