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 的警告了。