使用Mongoose配置MongoDB遇mpromise弃用警告,换Bluebird仍未解决
解决Mongoose mpromise弃用警告的问题
嘿,这个问题我熟!你代码里藏了个很容易踩的小坑——Promise的首字母要大写!
你现在写的是mongoose.promise(小写p),但Mongoose官方要求的配置项是mongoose.Promise(大写P)。小写的写法根本没生效,Mongoose还是在默认用它的mpromise库,所以警告会一直跳出来。
修复步骤:
- 先确保已经安装了bluebird(如果想用它的话):
npm install bluebird --save - 修改代码里的Promise配置行,把小写p改成大写P:
修正后的完整代码:
var mongoose = require('mongoose'); // 使用bluebird作为Promise库 mongoose.Promise = require('bluebird'); // 或者想用Node.js原生Promise的话,替换成下面这行: // mongoose.Promise = global.Promise; mongoose.connect('mongodb://localhost:27017/TodoApp'); var Todo = mongoose.model('Todo', { text: { type: String }, completed: { type: Boolean }, completedAt: { type: Number } }); var newTodo = new Todo({ text: 'Cook dinner' }); newTodo.save().then((doc) => { console.log('Saved todo', doc); }, (e) => { console.log('Unable to save todo') });
这样改完之后,Mongoose就会使用你指定的Promise库,那个恼人的弃用警告就会消失啦!
内容的提问来源于stack exchange,提问作者anshul
相关产品推荐
相关产品推荐

