web-dev-qa-db-ja.com

「mpromise(mongooseのデフォルトのpromiseライブラリ)は非推奨です」テスト時のエラー

しばらくの間、私はこのエラーを受け取っていて、今日それを修正することを決めましたが、修正しようとして1時間後に解決策を見つけることができます。

Mongooseユーザーモデルをテストすると、このエラー/警告が生成されます。

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

私のテストは次のとおりです。

  1 var assert = require('chai').assert;
  2 var mongoose = require('mongoose');
  3 var clearDB = require('mocha-mongoose')(require('../../config/database').uri, { skip: ['workouts'] });
  4 var database = require('../../config/database').connect;
  5
  6 var User = require('../../app/models/user');
  7 var user = new User({});
  8
  9 var req_body = {
 10   username: "garyvee",
 11   email: "[email protected]",
 12   password: "secret"
 13 };
 14
 15 describe('User', function() {
 16   beforeEach(function(done) {
 17     user.username = "johnsmith";
 18     user.email = "[email protected]";
 19     user.password = "secret";
 20     done();
 21   });
 22
 23   it('can be saved', function() {
 24     return user.save(function(err: any) {
 25       assert.isNull(err);
 26     })
 27   });
 28 });

.saveと関係があると思いますが、修正方法がわかりません。誰かが私を助けて、エラー/警告が表示されないように修正する方法を教えてもらえますか?.

13
Ivan Erlic

Promiseライブラリをプラグインする必要があります(q、bluebird、es6 one ...)

mongoose.Promise = require('bluebird');
31
Johannes Merz

ノード4.xからは、ES6 Promiseを使用できます。

const mongoose = require('mongoose');
mongoose.Promise = Promise;
14
olefrank

ここに役立つ例があります。 (CommonJSの代わりに)es6モジュールを使用すると、これは私にとってはうまくいきます:

// mongoose's Promise library is deprecated, using es6's: 
import es6Promise from 'es6-promise';
mongoose.Promise = es6Promise.Promise;
3
wojjas

mongoose Promiseの使用方法-mongo を参照できます

ページコンテンツ:

このページ: http://mongoosejs.com/docs/promises.html

タイトルは、Promises Libraryにプラグインすることです

1
Mr.Thanks