Node.js使用Mongoose时终端报无效选项错误该如何排查解决
报错原因
该报错出现在Mongoose 6.x及更高版本中,核心原因是你在调用mongoose.connect()或mongoose.createConnection()方法时,传入了已经被废弃的旧版本配置参数。
Mongoose 6.0版本开始,原5.x版本中常用的useNewUrlParser、useUnifiedTopology、useCreateIndex、useFindAndModify等连接配置已经被默认内置开启/禁用,不再属于合法的配置项,传入后就会触发无效选项校验报错。
解决方法
- 找到你的mongoose连接配置代码,删除所有废弃的配置项即可,修改前后参考如下:
错误示例(旧版本写法):
正确示例(6.x+版本写法):mongoose.connect('你的MongoDB连接地址', { useNewUrlParser: true, useUnifiedTopology: true, useCreateIndex: true, useFindAndModify: false })// 无需传入废弃配置,默认已经适配 mongoose.connect('你的MongoDB连接地址') // 其他合法配置可以正常传入,比如: // mongoose.connect('你的MongoDB连接地址', { // bufferCommands: false, // maxPoolSize: 10 // }) - 如果你不确定具体是哪个配置项非法,可以查看完整报错信息中反引号包裹的
${key}内容,直接删除配置中对应的key即可。
内容的提问来源于stack exchange,提问作者user14640073
相关产品推荐
相关产品推荐

