【问题标题】:Use express middleware morgan from exports使用 export 中的 express 中间件 morgan
【发布时间】:2018-06-23 17:15:08
【问题描述】:

我打算在 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()
} 

并在server.js 中使用import morganLogger from './logger' 并尝试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 用作来自外部js 文件的express 中间件。

【问题讨论】:

    标签: javascript node.js express morgan


    【解决方案1】:

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

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

    app.use(morgan('tiny'))
    

    【讨论】:

    • 我不只是使用morgan(tiny)。那只是一个例子。无论如何,我也在使用 winston 记录器,并希望将所有日志记录配置放在一个地方
    猜你喜欢
    • 2018-07-15
    • 1970-01-01
    • 2014-10-12
    • 1970-01-01
    • 2016-06-24
    • 2021-08-02
    • 2017-07-11
    • 2018-08-07
    • 2019-03-26
    相关资源
    最近更新 更多