0
我有這個問題DeprecationWarning:貓鼬:mpromise
(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});
}
});
}
})
怎麼辦?刪除貓鼬?我不會想重寫所有項目..
貓鼬4.8.2
是的,之前。問題解決了。我在'Schema中設置了'mongoose.Promise = global.Promise;'但遞減仍然不起作用。你知道嗎? – Lestoroer
剛剛編輯我的初始答案。 除非您在代碼中的其他地方使用promise,否則我認爲這些問題實際上是相關的。如果刪除'新的Post(data)'解決了你的問題,你也可以安全地刪除之前添加的'mongoose.Promise'聲明。 這就是說,如果你要使用承諾,保持它也沒有什麼壞處。 –
剛剛注意到在[issue](https://github.com/Automattic/mongoose/issues/4291)上有一個關於保存總是返回一個承諾的提示(即使提供了回調)。所以你應該保留'mongoose.Promise'聲明。 –