MongoDb mongoose 弃用警告 {useUnifiedTopology: true} 但它已经设置为 true

问题描述

当我尝试使用 mongoose 弃用警告连接 mongoDb 时

我在代码添加了选项,但仍然存在警告

const conn = mongoose.createConnection(process.env.DB_CONNECTION,{useUnifiedTopology: true,useNewUrlParser:true });

它出现 {useUnifiedTopology: true} 仅警告

解决方法

您的应用程序中的另一个包可能会连接到 mongodb,这就是您仍然收到该错误的原因。在可能的情况下,我有一个记录器将错误记录到 mongodb:

export const logger = winston.createLogger({
  level: "info",format: winston.format.json(),defaultMeta: { service: "user-service" },transports: [
    new winston.transports.File({ filename: "error.log",level: "error" }),new MongoDB.MongoDB({ db: process.env.DB_URI! }),// new winston.transports.
  ],});

所以这行 new MongoDB.MongoDB({ db: process.env.DB_URI! }) 导致警告仍然记录在终端上。当我注释掉这一行时,我不再收到警告。如果您想查看警告的来源,请将 --trace-deprecation 添加到 package.json 中的启动脚本中。

 "start":"node -r dotenv/config --trace-deprecation  dist/bundle.js"