测试时出现“mpromise(猫鼬的默认承诺库)已弃用”错误[重复]
Posted
技术标签:
【中文标题】测试时出现“mpromise(猫鼬的默认承诺库)已弃用”错误[重复]【英文标题】:"mpromise (mongoose's default promise library) is deprecated" error when testing [duplicate] 【发布时间】: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
有关,但我不知道如何解决它。有人可以帮助我并告诉我如何解决它,以便不显示错误/警告。
【问题讨论】:
【参考方案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;
【讨论】:
另见:***.com/a/38153706/2650732【参考方案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;
【讨论】:
以上是关于测试时出现“mpromise(猫鼬的默认承诺库)已弃用”错误[重复]的主要内容,如果未能解决你的问题,请参考以下文章
运行 Spring Boot 集成测试时出现 Liquibase 问题
重新运行测试时出现 NullPointerException
(Friday Night Funkin') 运行“lime 测试窗口”时出现问题