我得到了deprecatingWarning,尽管我有:
mongoose.Promise = global.Promise;
var express = require('express');
var responseTime = require('response-time');
var mongoose = require('mongoose');
var User = require('../models/user');
var Task = require('../models/task');
var Rating = require('../models/rating');
var Skill = require('../models/skill');
var Match = require('../models/match');
var UserSkill = require('../models/user_skill');
var app = express();
var bodyParser = require('body-parser');
var PORT_NUMBER = 3000;
// response-time middleware (adds X-Response-Header to responses)
app.use(responseTime());
//
mongoose.Promise = global.Promise;
mongoose.connect('mongodb://useyourown');
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({
extended: true
}));
app.post('/create', function(req,res){
let newTask = new Task();
newTask.name = req.body.name;
newTask.experience = req.body.experience;
newTask.user_id = req.body.user_id;
newTask.rating = req.body.rating;
newTask.save(function(err, task){
if(err){
return err;
}
else{
console.log("Task saved: " + task.name);
}
res.redirect('hearbeat');
});
});现在,当我用Postman测试这个时,我的控制台给了我这个错误:
DeprecationWarning: Mongoose: mpromise (mongoose's default promise library) is deprecated, plug in your own promise library instead: http://mongoosejs.com/docs/promises.html正因为如此,它不能正常工作。有很多人有这样的错误,但是增加承诺为他们修正了它。我不明白为什么它现在对我有用。
发布于 2017-02-22 10:50:42
你必须把承诺库传给mongoose.Promise,所有你需要猫鼬的地方,例如。在app.js中,在shcema/model文件中,在测试文件中
var mongoose = require('mongoose');
mongoose.Promise = global.Promise;使用本机global.Promise我重新注册了使用蓝鸟承诺库,它的速度要快得多:https://softwareengineering.stackexchange.com/questions/278778/why-are-native-es6-promises-slower-and-more-memory-intensive-than-bluebird
发布于 2017-02-22 08:16:27
我发现:
“是的,似乎在导出mongoose.model的模式文件中设置了mongoose。允诺消除了mongoose版本4.8及更高版本中的警告。”
我觉得你应该再查一遍你的版本。
https://stackoverflow.com/questions/42385857
复制相似问题