“mpromise(mongoose的默认承诺库)已弃用”testing时出错
有一段时间我得到这个错误,我决定今天修复它,但一小时后,试图解决它,我可以find解决scheme。
当我testing我的mongoose用户模型时,会产生这个错误/警告:
Mongoose: mpromise (mongoose's default promise library) is deprecated, plug in your own promise library instead: http://mongoosejs.com/docs/promises.html
这是我的testing:
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
但我不知道如何解决。 有人可以帮助我,并告诉我如何解决这个错误/警告不显示。
你需要插入一个承诺库(Q,蓝鸟,ES6的…)
mongoose.Promise = require('bluebird');
从节点4.x你可以使用ES6承诺:
const mongoose = require('mongoose'); mongoose.Promise = Promise;
这是一个可能有用的例子。 使用es6模块(而不是CommonJS要求),这对我有用:
// mongoose's Promise library is deprecated, using es6's: import es6Promise from 'es6-promise'; mongoose.Promise = es6Promise.Promise;
你可以参考如何使用mongoose诺言 – mongo
页面内容:
在这个页面上: http : //mongoosejs.com/docs/promises.html
标题是插入你自己的承诺库
- Nodejs / Express API简单的Mocha / Chaitesting
- 在摩卡testing中收听手表的“重新加载”事件(例如closures数据库连接)
- 摩卡 – 之前()不执行“之前”按预期?
- 使用selenium webdriverjs运行摩卡testing时不太有用的callstack
- 如何暂停或等待在摩卡testing案例 – setTimeout不工作
- 安装Zombie.js错误:ReferenceError:Set未定义。 我究竟做错了什么?
- 与摩卡手表一起使用时,Sinon存根有奇怪的performance
- TypeError:“string”必须是string,Buffer或ArrayBuffer
- 摩卡和柴:写作断言