2017-02-16 6 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'); 
    } 
}); 

OK初めて実行するプログラム。データがデータベースに追加されます。しかし、2回目にはまだエラーが発生します。

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 issue](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

関連する問題