You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.11 08:57:26