[英]“mpromise (mongoose's default promise library) is deprecated” in Typescript Application
[英]Mongoose's default promise library is deprecated in MEAN stack
我正在尝试启动MEAN堆栈服务器,但是却收到此错误消息:
猫鼬:mpromise(猫鼬的默认诺言库)已过时,请插入您自己的诺言库: http ://mongoosejs.com/docs/promises.html
我尝试在此处搜索一些答案,但发现的答案对我来说还不够清楚:
我找到了名为mongoose.connect的文件,但是关于该问题的代码对我不起作用,有人可以为我解释它的工作原理吗?
在mongo连接之前使用此代码,这将解决promise问题。
mongoose.Promise = global.Promise;
最新的猫鼬库,请勿使用任何默认的Promise库。 从Mongoose v 4.1.0起,您可以插入自己的库。
如果您使用的是Mongoose库(不是底层的MongoDB驱动程序),则可以插入Promise库,如下所示:
//using Native Promise (Available in ES6) mongoose.Promise = global.Promise; //Or any other promise library mongoose.Promise = require('bluebird'); //Now create query Promise var query = someModel.find(queryObject); var promise = query.exec();
如果您使用的是MongoDB驱动程序,则需要付出额外的努力。 因为, mongoose.Promise
设置了mongoose不使用驱动程序的Promise。 在这种情况下,您可以使用以下代码。
// Use bluebird var options = { promiseLibrary: require('bluebird') }; var db = mongoose.createConnection(uri, options);
为我工作。
猫鼬v4.11.7解决承诺问题
const mongoose = require('mongoose');
mongoose.Promise = global.Promise;
mongoose.connection.openUri('mongodb://127.0.0.1:27017/app_db', { /* options */ });
猫鼬#save()
var article = new Article(Obj);
article.save().then(function(result) {
return res.status(201).json({
message: 'Saved message',
obj: result
});
}, function (err) {
if (err) {
return res.status(500).json({
title: 'Ac error occurred',
error: err
});
}
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.