2017-01-30 2 views
4

Это ошибка, которую все еще бросают при сохранении даже после добавления собственного обещания.Ошибка Mongoose Promise

(узел: 5604) DeprecationWarning: Mongoose: mpromise (обещание по умолчанию библиотека Mongoose в) является устаревшим, включите в свой собственный обещание библиотеки вместо: http://mongoosejs.com/docs/promises.html

mongoose.Promise = global.Promise; 
mongoose.connect('mongodb://127.0.0.1/optimusCP') 
    .then(function() { 
     console.log('Connected to MONGOD !!'); 
    }).catch(function (err) { 
     console.log('Failed to establish connection with MONGOD !!'); 
     console.log(err.message); 
    }); 

Я попытался как Bluebird & д , до сих пор не нашли исправления для этого. Ниже приведен код, когда я сохраню это следующее предупреждение устаревания показывает вверх ..

var user = new User(); 
     user.email = req.body.email; 
     user.password = hash; 
     user.save() 
      .then(function (user) { 
       console.log(user); 
      }) 
      .catch(function (err) { 
       console.log(err); 
      }); 

Эта ошибка происходит на новой версии мангусты, которая 4.8.1, но работает нормально на 4.7.6 версия для мангуста.

+0

Вы прочитали последний раздел о ** Обещания для Драйвера MongoDB ** –

+0

Из документов? Если да, то да .. –

+0

это просто, что вы не указали эту часть своего кода –

ответ

2

Несмотря на использование mongoose.Promise = global.Promise; до mongoose.connect(...), у меня было то же предупреждение.

я обнаружил, что я инициализируется соединение мангуста в одном файле:

import mongoose from 'mongoose'; 

... 

// Connect to MongoDB 
mongoose.Promise = global.Promise; 
mongoose.connect(mongoUri, mongoOptions); 
mongoose.connection.on('error', (err) => { 
    console.error(`MongoDB connection error: ${err}`); 
    process.exit(1); 
}); 

Но я импортировал mongoose в другой файл тоже (где была описана схема мангуст), поэтому я добавил mongoose.Promise = global.Promise; во второй файл тоже, как из-за этого предупреждение исчезло.

import mongoose, { Schema } from 'mongoose'; 
mongoose.Promise = global.Promise; 

const UserSchema = new Schema({ ... }); 

Возможно, у вас такой же случай.

+0

Бро вы спасли мою жизнь (просто шутите) Правильный ответ bro (y) –

0

Я имел успех, чтобы избавиться от сообщения с этим

mongoose.Promise = Promise; 
0

Я использовал Блюберд для использования обещания с мангуст модели функции узел v6.9.4:

mongoose.Promise = require('bluebird'); 
+0

Я четко упомянул, что я пробовал использовать как синие птицы, так и q, но все та же проблема. –

0

У меня такая же проблема с Mongoose 4.8.1, обновление до 4.9.1 решило мою проблему.

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