используйте этот код перед подключением монго, и это решит проблему обещания.
mongoose.Promise = global.Promise;
Я пытаюсь запустить сервер MEAN-стека, но я получаю сообщение об ошибке:
Mongoose: mpromise (библиотека обещаний по умолчанию для mongoose) устарела, вместо этого добавьте свою собственную библиотеку обещаний: http://mongoosejs.com/docs/promises.html
Я попытался найти здесь несколько ответов, но тот, который я нашел, для меня был недостаточно ясен:
(узел: 3341) Устаревание Предупреждение: Mongoose: mpromise
Я нашел файл, вызывающий mongoose.connect, но коды по этому вопросу не сработали для меня, может ли кто-нибудь объяснить мне, как это работает?
javascript,node.js,mongodb,mongoose,promise,
Как я обычно подключаюсь к 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);
Последняя библиотека 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);
Работайте со мной.
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
});
}
});