我有这个问题
(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;
Mongoose只是不救这个!更准确地说,猫鼬通过时间节省。我听说这个问题可能是被贬低的承诺所致。
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
答案 0 :(得分:3)
您在连接之前设置了Promise
吗?
const mongoose = require('mongoose');
mongoose.Promise = global.Promise;
mongoose.connect('mongodb://...');
另外,请务必在使用猫鼬时设置Promise
,即使在Schema
上也是如此。
如此issue中所述。
编辑:关于减量问题(如果你没有在其他任何地方使用promises,我认为这与之前的相关)。试试这个。
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 });
});
}
});