猫鼬承诺错误
Mongoose Promise error
添加native promise后保存时仍然报错
(node:5604) DeprecationWarning: Mongoose: mpromise (mongoose's default promise library) is deprecated, plug in your own promise library instead: http://mongoosejs.com/docs/promises.html
mongoose.Promise = global.Promise;
mongoose.connect('mongodb://127.0.0.1/optimusCP')
.then(function () {
console.log('Connected to MONGOD !!');
}).catch(function (err) {
console.log('Failed to establish connection with MONGOD !!');
console.log(err.message);
});
我已经尝试了 bluebird 和 q,仍然没有找到解决这个问题的方法。
下面是我保存时的代码,出现以下弃用警告..
var user = new User();
user.email = req.body.email;
user.password = hash;
user.save()
.then(function (user) {
console.log(user);
})
.catch(function (err) {
console.log(err);
});
This error is happening on the new version of mongoose which is 4.8.1, but working fine on 4.7.6 mongoose version.
我已经成功删除了这条消息
mongoose.Promise = Promise;
我使用 bluebird 将 promise 与 mongoose 模型函数节点 v6.9.4 结合使用:
mongoose.Promise = require('bluebird');
尽管在 mongoose.connect(...)
之前使用了 mongoose.Promise = global.Promise;
,但我收到了相同的警告。
我发现,我在一个文件中初始化了 mongoose 连接:
import mongoose from 'mongoose';
...
// Connect to MongoDB
mongoose.Promise = global.Promise;
mongoose.connect(mongoUri, mongoOptions);
mongoose.connection.on('error', (err) => {
console.error(`MongoDB connection error: ${err}`);
process.exit(1);
});
但是我也在另一个文件中导入了mongoose
(其中描述了猫鼬方案),所以我也在第二个文件中添加了mongoose.Promise = global.Promise;
,结果警告消失了。
import mongoose, { Schema } from 'mongoose';
mongoose.Promise = global.Promise;
const UserSchema = new Schema({ ... });
可能你也有同样的情况。
将 Mongoose 从 4.8.1 升级到 4.9.1 解决了我的问题。
添加native promise后保存时仍然报错
(node:5604) DeprecationWarning: Mongoose: mpromise (mongoose's default promise library) is deprecated, plug in your own promise library instead: http://mongoosejs.com/docs/promises.html
mongoose.Promise = global.Promise;
mongoose.connect('mongodb://127.0.0.1/optimusCP')
.then(function () {
console.log('Connected to MONGOD !!');
}).catch(function (err) {
console.log('Failed to establish connection with MONGOD !!');
console.log(err.message);
});
我已经尝试了 bluebird 和 q,仍然没有找到解决这个问题的方法。 下面是我保存时的代码,出现以下弃用警告..
var user = new User();
user.email = req.body.email;
user.password = hash;
user.save()
.then(function (user) {
console.log(user);
})
.catch(function (err) {
console.log(err);
});
This error is happening on the new version of mongoose which is 4.8.1, but working fine on 4.7.6 mongoose version.
我已经成功删除了这条消息
mongoose.Promise = Promise;
我使用 bluebird 将 promise 与 mongoose 模型函数节点 v6.9.4 结合使用:
mongoose.Promise = require('bluebird');
尽管在 mongoose.connect(...)
之前使用了 mongoose.Promise = global.Promise;
,但我收到了相同的警告。
我发现,我在一个文件中初始化了 mongoose 连接:
import mongoose from 'mongoose';
...
// Connect to MongoDB
mongoose.Promise = global.Promise;
mongoose.connect(mongoUri, mongoOptions);
mongoose.connection.on('error', (err) => {
console.error(`MongoDB connection error: ${err}`);
process.exit(1);
});
但是我也在另一个文件中导入了mongoose
(其中描述了猫鼬方案),所以我也在第二个文件中添加了mongoose.Promise = global.Promise;
,结果警告消失了。
import mongoose, { Schema } from 'mongoose';
mongoose.Promise = global.Promise;
const UserSchema = new Schema({ ... });
可能你也有同样的情况。
将 Mongoose 从 4.8.1 升级到 4.9.1 解决了我的问题。