2017-03-08 82 views
0

我使用從互聯網上流行的修復,但它仍然是不工作...這裏是我的代碼:貓鼬:mpromise(貓鼬的默認承諾庫)已被棄用

var Lobby = require('../models/lobbies-model'); 
var mongoose = require('mongoose'); 

mongoose.Promise = require('bluebird'); 
mongoose.connect('localhost:27017/mydb'); 
var lobbies = [ 
    new Lobby({ 
     nickname: 'Nickname1', 
     status: "Status1", 
    }), 
    new Lobby({ 
     nickname: 'Nickname2', 
     status: "Status2", 
    }) 
]; 

var done = 0; 
for (var i = 0; i < lobbies.length; i++) { 
    lobbies[i].save(function(err, result) { 
     done++; 
     console.log(result); 
     if (done === lobbies.length) { 
      exit(); 
     } 
    }); 
} 

function exit() { 
    mongoose.disconnect(); 
} 

而且有一個錯誤我控制檯和我的結果...

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

如何解決該錯誤?

+0

嘗試移動'VAR大堂=需要(「../型號/大堂模型」);你設置'行之後'mongoose.Promise'。 – JohnnyHK

回答

1

如這裏指出https://github.com/Automattic/mongoose/issues/4291#issuecomment-230312093一個解決方法是將前連接使用mongoose.Promise = global.Promise;

mongoose.Promise = global.Promise; // ADD THIS 
    mongoose.connect('localhost:27017/mydb'); 
+0

第一行和第二行應該只保留其中一個,對吧? –

+0

是的,更新了,你應該添加藍鳥這樣的東西http://bluebirdjs.com/docs/api/promisification.html –

+0

OP已經調用了'mongoose.Promise = require('bluebird');'在他們的代碼中。 – JohnnyHK