MongoDB mongoose предупреждение об устаревании {useUnifiedTopology: true}, но оно уже установлено в true

#node.js #mongodb #express #mongoose #deprecation-warning

#node.js #mongodb #выразить #mongoose #устаревание-предупреждение

Вопрос:

когда я пытаюсь подключить MongoDB с помощью mongoose появляется предупреждение об устаревании

я добавляю опцию в код, но предупреждение все еще есть

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

появляется
{useUnifiedTopology: true} только предупреждение

Ответ №1:

другой пакет в вашем приложении может подключаться к 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"
 

Комментарии:

1. есть ли в вашем приложении какой-либо другой фрагмент кода, подключающийся к mongo.