node.js - 初始化后winston-mongodb错误

标签 node.js mongodb winston

我正在尝试配置一个基本的 winston 记录器,但一直出现相同的错误。

到目前为止我要配置的就是这个

var winston = require('winston');
var mongoLog = require('winston-mongodb').MongoDB;
var appSettings = require('./appSettings');

var logger = new (winston.Logger)();
logger.add(mongoLog, {
   db: appSettings.database,
   host: appSettings.dbConnection,
   collection: appSettings.loggingCollection
 }
);

这是我遇到的错误。

winston-mongodb: error initialising logger Error: invalid schema, expected mongodb

主机是 azure 中 mongodb 实例的 ip,但这似乎不是问题,因为如果我删除主机(根据文档将其默认为 localhost)并尝试让它连接到我的本地 mongo例如它给出了同样的错误。我是否调用记录器上的任何方法似乎也无关紧要。

最佳答案

我猜是不是看错了文档? 在 this page它具有这样描述的 db 参数

db: The name of the database you want to log to.

所以我想我会在那里有数据库名称,并且需要单独指定主机。

但是在 this page它有不同的描述。

db: MongoDB connection uri, pre-connected db object or promise object which will be resolved with pre-connected db object.

这显然是正确的描述,完整的 URI 是这种格式:

mongodb://<host>:<port>/<db>

关于node.js - 初始化后winston-mongodb错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44598763/

相关文章:

mongodb - 我可以在无服务器模式下使用 MongoDb 吗?

mongodb - 向mongodb中的1亿条记录添加一个新字段

mongodb - Mongodb聚合中基于其他字段值的多个条件的动态新字段值

node.js - 如何在每个请求的每个 winston 日志 Node js 中添加 uuid?

mysql - 如何在 Node.js 中使用 express-winston 将日志存储到 mysql db

node.js - puppeteer 无法在 nextjs 中截取 React 播放器的屏幕截图

html - socket.io 客户端到客户端消息传递

node.js - 查询winston日志返回空结果

javascript - 为什么使用 .call vs 直接向原型(prototype)添加方法?

node.js - MongoDB findAndModify 对旧文档中的字段而不是更新后的文档中的字段执行什么操作?