node.js - 使用 winston-mongodb 和 express-winston 进行日

我正在尝试使用 express-winston 和 winston-mongodb 将请求/响应记录到 NodeJS 项目中的 MongoDB。这是我到目前为止工作的示例代码;

const expressWinston = require('express-winston');
const winston = require('winston'); 
require('winston-mongodb').MongoDB;

const logger = expressWinston.logger({
 transports: [
    winston.add(winston.transports.MongoDB, {
        db : 'something',
        collection : 'something',
        level : 'info',
        capped : true
    })
 ]
});

我正在导出这个记录器并在我的 index.js 中使用它;

app.use(logger);

最后,我面临两个问题;

  1. 在我的 Mongo 集合中为每个请求/响应创建一个新条目,但它们是空的,如下所示

  2. 即使创建了条目,我也遇到了异常;

    TypeError: cb 不是函数 在 logDb.collection.insertOne.then.catch.err (\node_modules\winston-mongodb\lib\winston-mongodb.js:213:7)

这是来自 winston-mongodb.js 的导致异常的代码块;

this.logDb.collection(this.collection).insertOne(entry).then(()=>{
  console.error('55dddddrrr', {});
  this.emit('logged');
  **cb(null, true);**
})

我一直在尝试解决这个问题,但还没有想出任何有用的东西。非常感谢您对此问题的任何帮助。

最佳答案

我也有同样的问题,好像winston-mongodb日志函数有不同的参数(info作为要登录到mongo数据库的元对象,cb是如果你想查看日志操作后的结果的回调函数在 mongo 上完成)

解决方案: 安装winston-mongodb包,版本号为3.0.0

npm install winston-mongodb@3.0.0 --save

引用 github 问题 cb is not a function

关于node.js - 使用 winston-mongodb 和 express-winston 进行日志记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48202738/

相关文章:

java - Spring MongoTemplate - 将聚合结果映射到集合(例如 List 和

mongodb - 要将一条记录与 MongoDB 中的另一条记录相关联,可以使用 slug 吗?

javascript - 为已登录的用户手动创建 Passport session

node.js - Mongoose 类型错误 : User is not a constructo

java - Mongo 将 Document 转换为 DBObject

mongodb - 使用 mongodb 聚合的多个字段的不同计数

json - 使用 Python 从 MongoDB 文档创建 JSON 文件

node.js - 我应该使用什么数据类型来使用 MongoDB 存储图像?

c# - ReadBsonType 只能在 State 为 Type 时调用,不能在 State 为

node.js - 查找未邀请任何用户的用户