2017-02-16 4 views
0

Я изучаю много страниц, и я также получаю почти совет: добавьте mongoose.Promise = global.Promise; перед тем связь. Это мой код:nodejs - mpromise (библиотека обещаний по умолчанию mongoose) устарела

var mongo = require('mongodb'); 
var mongoose = require('mongoose'); 
mongoose.Promise = global.Promise; 
mongoose.connect('mongodb://localhost:27017/mean', function(err, res) { 
    if (err) { 
     console.log(err); 
    } 
    else { 
     console.log('Connected to DB'); 
    } 
}); 

В первый раз запустить программу в порядке. Данные добавляются в базу данных. Но во второй раз, я все еще получаю ошибку:

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

Любая помощь мне эта проблема?

+0

Возможно, это связано с этой проблемой [Github] (https://github.com/Automattic/mongoose/issues/4951). То же самое происходит со мной при использовании Mongoose 4.8.x. Ошибка при использовании 4.7.9. –

+0

Почему вы загружаете 'var mongo = require ('mongodb');' Когда вы используете 'mongoose' –

+0

Спасибо Случайный пользователь! Я удалил его. –

ответ

-1

Это предупреждение, в котором говорится, что библиотека обещаний Mongoose по умолчанию устарела.

Вы должны использовать сторонние библиотеки обещаний, а не, например. Bluebird или Q.

Вот пример использования Bluebird обещания и promisifying Мангуст с помощью этого:

import mongoose from "mongoose"; 
import Promise from "bluebird"; 

// promisify mongoose 
Promise.promisifyAll(mongoose); 

Теперь вы можете использовать Mongoose, как обещания, и это не даст вам устаревшее предупреждения.

+1

Он уже заменил собственную библиотеку мангуста узлом. – Red

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