【问题标题】:"mpromise (mongoose's default promise library) is deprecated" error when testing [duplicate]测试时出现“mpromise(猫鼬的默认承诺库)已弃用”错误[重复]
【发布时间】:2017-01-12 23:31:16
【问题描述】:

一段时间以来,我一直收到此错误,我决定今天修复它,但经过一个小时尝试修复它,我找到了解决方案。

当我测试我的猫鼬用户模型时,会生成此错误/警告:

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: "gary@vaynermedia.com",
 12   password: "secret"
 13 };
 14
 15 describe('User', function() {
 16   beforeEach(function(done) {
 17     user.username = "johnsmith";
 18     user.email = "john@gmail.com";
 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 有关,但我不知道如何解决它。有人可以帮助我并告诉我如何解决它,以便不显示错误/警告。

【问题讨论】:

    标签: node.js mongodb mongoose mocha.js


    【解决方案1】:

    你需要插入一个promise库(q、bluebird、es6 one...)

    mongoose.Promise = require('bluebird');
    

    【讨论】:

    • 谢谢你,你的解决方案有效:)
    • 将上述内容与节点 6.9.1、猫鼬 4.8.3 和蓝鸟 3.4.7 一起使用时,我仍然收到此警告。
    • Jackpile,你也得把它加到models.js中
    【解决方案2】:

    这是一个可能有帮助的例子。 使用 es6 模块(而不是 CommonJS 要求)这对我有用:

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

    【讨论】:

    【解决方案3】:

    你可以参考 How to use mongoose Promise - mongo

    页面内容:

    在这个页面上:http://mongoosejs.com/docs/promises.html

    标题是 Plugging in your own Promises Library

    【讨论】:

      【解决方案4】:

      从节点 4.x 开始,您可以只使用 ES6 承诺:

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

      【讨论】:

        猜你喜欢
        • 2017-02-28
        • 2017-07-05
        • 2017-09-01
        • 2017-06-15
        • 2017-07-28
        • 2016-05-19
        • 2015-06-27
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多