2017-02-16 34 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的默認承諾庫已被棄用。

您應該使用第三方承諾庫,例如藍鳥或Q.

下面是使用藍鳥承諾和使用promisifying貓鼬的例子:

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

// promisify mongoose 
Promise.promisifyAll(mongoose); 

現在,你可以使用貓鼬的承諾,它不會給你過時的警告。

+1

他已經用節點1替換了本地貓鼬庫。 – Red