Mongoose 弃用警告:猫鼬:mpromise
我有这个问题Mongoose 弃用警告:猫鼬:mpromise,mongoose,Mongoose,我有这个问题 (node:10372) 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.Pr
(node:10372) 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.Promise = require('bluebird');
mongoose.Promise = require('q').Promise;
没有人能解决这个问题
关于这个问题,我还有另一个问题——不能用递减法<代码>data.likes-=1代码>
猫鼬救不了这个!更准确地说,猫鼬通过时间来节省。我听说这个问题可能会被不赞成的承诺所困扰
Post.findById(req.body._id, function(err, data) {
if (err) {console.log(err);}
if (data.voited[req.session.id] == true) {
data.voited[req.session.id] = false;
data.likes += 1;
var post = new Post(data);
post.save(function(err, data) {
if (err) {
console.log(err);
res.send({status:416});
} else {
res.send({status:200, likes: true});
}
});
} else {
data.voited[req.session.id] = true;
data.likes -= 1;
var post = new Post(data);
post.save(function(err, data) {
if (err) {
console.log(err);
res.send({status:416});
} else {
res.send({status:200, likes: false});
}
});
}
})
怎么办?删除猫鼬?我不想重写所有的项目
mongoose 4.8.2您是否在连接之前设置了
承诺
const mongoose = require('mongoose');
mongoose.Promise = global.Promise;
mongoose.connect('mongodb://...');
此外,请确保在使用mongoose时设置了承诺
,即使是在模式
上
如本文所述
编辑:关于减量问题(如果您没有在其他地方使用承诺,我相信这与前面的问题有关)。试试这个
Post.findById(req.body._id, function(err,data) {
if (err) {console.log(err);}
var session = data.voited[req.session.id];
if (session == true) {
Post.update({_id: req.body._id}, {$inc: {likes: 1}, voited: {[req.session.id]: false}}, function(err, data) {
if (err) { console.log(err); }
res.send({ status:200, likes: true });
});
} else {
Post.update({_id: req.body._id}, {$inc: {likes: -1}, voited: {[req.session.id]: true}}, function(err, data) {
if (err) { console.log(err); }
res.send({ status:200, likes: false });
});
}
});
是的,以前。问题解决了。我设置
mongoose.Promise=global.Promise代码>在架构中,但减量仍然不起作用。你知道吗?刚刚编辑了我的初步答案。除非您在代码的其他地方使用承诺,否则我认为这些问题实际上是相关的。如果删除新帖子(数据)
解决了您的问题,您还可以安全地删除先前添加的mongoose.Promise
声明。也就是说,如果你要使用承诺,那么遵守承诺也没有坏处。只是注意到在屏幕上有一条关于保存总是返回承诺的注释(即使提供了回调)。因此,您实际上应该保留mongoose.Promise
声明
不保存,但post.likes+=1代码>保存。可能是因为一个对象的类型不同if(){}
检查post.voited[req.session.id]==true
并且它也需要保存。现在我将尝试这样做。