2017-02-22 13 views
0

Я получаю deprecatingWarning, даже если у меня есть: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'); 
    }); 
}); 

Теперь, когда я пробовал с Почтальон моя консоль дает мне эту ошибку:

DeprecationWarning: Mongoose: mpromise (mongoose's default promise library) is deprecated, plug in your own promise library instead: http://mongoosejs.com/docs/promises.html 

и из-за этого он работает неправильно. Существует много людей с подобной ошибкой, однако добавление обещания исправлено для них. Я не понимаю, почему он сейчас работает на меня.

ответ

0

Вы должны передать библиотеку обещаний mongoose.Promise каждый, где вы нуждаетесь в мангусте, например. в app.js, в shcema/файлы модели, в тестовых файлах

var mongoose = require('mongoose'); 
mongoose.Promise = global.Promise; 

Вместо использования родного global.Promise я recoomended использовать Bluebird библиотеку обещание, ее гораздо быстрее: https://softwareengineering.stackexchange.com/questions/278778/why-are-native-es6-promises-slower-and-more-memory-intensive-than-bluebird

+0

Спасибо, я не знал, что должен был повесить его повсюду. – user3450754

0

я нашел:

"Yes, it appears that setting the mongoose. Promise in the schema files where mongoose.model is exported eliminates the warning in mongoose versions 4.8 and later."

Я думаю, вы должны проверить вашу версию снова.

+0

Благодаря @chridam! – NguyenTungs

 Смежные вопросы

  • Нет связанных вопросов^_^