Node.js &引用;mpromise(mongoose的默认承诺库)已被弃用;测试时出错
一段时间以来,我一直遇到这个错误,我决定今天修复它,但经过一个小时的努力,我可以找到解决办法 当我测试mongoose用户模型时,会生成以下错误/警告:Node.js &引用;mpromise(mongoose的默认承诺库)已被弃用;测试时出错,node.js,mongodb,mongoose,mocha.js,Node.js,Mongodb,Mongoose,Mocha.js,一段时间以来,我一直遇到这个错误,我决定今天修复它,但经过一个小时的努力,我可以找到解决办法 当我测试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 as
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
有关,但我不知道如何修复它。有人能帮助我并告诉我如何修复它,以便不显示错误/警告。您需要插入一个promise库(q、bluebird、es6库…)
下面是一个可能有帮助的例子。 使用es6模块(而不是CommonJS-require)对我来说很有用:
// mongoose's Promise library is deprecated, using es6's:
import es6Promise from 'es6-promise';
mongoose.Promise = es6Promise.Promise;
你可以参考
页面内容:
在本页上:
标题是插入您自己的承诺库
在node 4.x中,您只需使用ES6承诺:
const mongoose = require('mongoose');
mongoose.Promise = Promise;
谢谢你,你的解决方案是有效的:)当我在node 6.9.1、mongoose 4.8.3和bluebird 3.4.7.Jackpile中使用上述内容时,仍然会收到此警告,你还必须将其添加到models.js中才能看到:
const mongoose = require('mongoose');
mongoose.Promise = Promise;