Библиотека обещаний Mongoose по умолчанию устарела в стеке MEAN

Я пытаюсь запустить сервер MEAN-стека, но я получаю сообщение об ошибке:

Mongoose: mpromise (библиотека обещаний по умолчанию для mongoose) устарела, вместо этого добавьте свою собственную библиотеку обещаний: http://mongoosejs.com/docs/promises.html

Я попытался найти здесь несколько ответов, но тот, который я нашел, для меня был недостаточно ясен:

(узел: 3341) Устаревание Предупреждение: Mongoose: mpromise

Я нашел файл, вызывающий mongoose.connect, но коды по этому вопросу не сработали для меня, может ли кто-нибудь объяснить мне, как это работает?

javascript,node.js,mongodb,mongoose,promise,

6

Ответов: 4


10

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

mongoose.Promise = global.Promise;

2

Как я обычно подключаюсь к MongoDB, используется библиотека обещаний Bluebird . Вы можете больше узнать об этом в этом посте . В любом случае этот фрагмент ниже поможет вам начать работу, так как это то, что я использую при прототипировании.

let mongoose = require('mongoose');
let promise = require('bluebird');
let uri = 'mongodb://localhost:27017/your_db';
mongoose.Promise = promise;
let connection = mongoose.createConnection(uri);

2

Последняя библиотека mongoose, не используйте библиотеку обещаний по умолчанию. А из Mongoose v 4.1.0 вы можете подключить свою собственную библиотеку.

Если вы используете библиотеку mongoose (не лежащий в основе драйвера MongoDB), вы можете подключить библиотеку обещаний следующим образом:

//using Native Promise (Available in ES6)
mongoose.Promise = global.Promise;

//Or any other promise library
mongoose.Promise = require('bluebird');

//Now create query Promise
var query = someModel.find(queryObject);
var promise = query.exec();

Если вы используете MongoDB Driver, вам нужно будет приложить дополнительные усилия. Потому что, mongoose.Promiseустанавливает Обещание, что мангуста использует не драйвер. Вы можете использовать приведенный ниже код в этом случае.

// Use bluebird
var options = { promiseLibrary: require('bluebird') };
var db = mongoose.createConnection(uri, options);


2

Работайте со мной.

Mongoose v4.11.7 разрешает проблему обещания

const mongoose = require('mongoose');
mongoose.Promise = global.Promise;
mongoose.connection.openUri('mongodb://127.0.0.1:27017/app_db', { /* options */ });

Mongoose #save ()

var article = new Article(Obj);
article.save().then(function(result) {
    return res.status(201).json({
        message: 'Saved message',
        obj: result
    });
}, function (err) {
    if (err) {
        return res.status(500).json({
            title: 'Ac error occurred',
            error: err
        });
    }
});
JavaScript, Node.js, MongoDB, мангуст, обещание,