我正在尝试使用猫鼬设置我的mongoDB数据库,但出现错误“已弃用猫鼬默认承诺库”

时间:2019-01-19 09:23:51

标签: javascript node.js mongodb mongoose es6-promise

我试图使用mongoose设置我的MongoDB数据库,但是收到了不赞成使用的警告“不赞成Mongoose:mpromise(mongoose的默认Promise库),请插入您自己的Promise库:http://mongoosejs.com/docs/promises.html

这是我下面的server.js文件代码:

var mongoose = require('mongoose');
mongoose.promise = require('bluebird');


// 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')
});

我已经尝试安装bluebird并将其用作第三方承诺,但仍然收到相同的错误消息。

2 个答案:

答案 0 :(得分:1)

尝试使用此代码伴侣

var mongoose = require('mongoose');

mongoose.Promise = global.Promise;
mongoose.connect('mongodb://10.7.0.3:27107/data/TodoApp'); 

答案 1 :(得分:-1)

您应该使用

mongoose.Promise = require('bluebird');

您正在使用

mongoose.promise = require('bluebird');

我还认为您正在使用旧版的nodejs。我使用node js 8,而mongoose则采用global。默认情况下,Promise是Promise,因为nodejs 8带有原生Promise。