【警告问题】如何取消警告⚠️(node:35898) [MONGOOSE] DeprecationWarning: Mongoose: the strictQuery option

const mongoose = require('mongoose');
require('dotenv').config();

const connectDB = async () => {
  try {
    await mongoose.connect(process.env.MONGO_URI, {
      useNewUrlParser: true,
      useUnifiedTopology: true,
    });
    console.log('MongoDB Connected...');
  } catch (err) {
    console.error(err.message);
    process.exit(1);
  }
};

module.exports = connectDB;
怎么修改这个警告

这是一个 Mongoose 的警告信息,不影响服务器正常运行。意思是 Mongoose 将在版本 7 中将 strictQuery 选项默认设置为 false。你可以通过在代码中手动设置该选项来关闭此警告,例如:

const mongoose = require('mongoose');
mongoose.set('strictQuery', false);

你可以将这行代码放在 ./config/db.js 中的 require('dotenv').config(); 之后,以确保在连接数据库前设置好选项。如果你不做设置,这个警告仍然会出现,但并不影响当前代码的正常执行。当前输出“Server running on port 5001”表明服务器已经成功启动。

你可以在连接数据库之前设置 mongoose 的 strictQuery 选项,以消除这个警告。例如,你可以在加载 dotenv 后立即添加下面这一行代码:

mongoose.set('strictQuery', false);

修改后的完整代码如下:

const mongoose = require('mongoose');
require('dotenv').config();

mongoose.set('strictQuery', false); // 设置为 false 以消除警告

const connectDB = async () => {
  try {
    await mongoose.connect(process.env.MONGO_URI, {
      useNewUrlParser: true,
      useUnifiedTopology: true,
    });
    console.log('MongoDB Connected...');
  } catch (err) {
    console.error(err.message);
    process.exit(1);
  }
};

module.exports = connectDB;

这样设置后,Mongoose 就不会再提示 strictQuery 的警告了。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值