"mpromise (mongoose's default promise library) is deprecated" 测试时出错
"mpromise (mongoose's default promise library) is deprecated" error when testing
一段时间以来我一直收到此错误,我决定今天修复它,但在尝试修复一个小时后我找到了解决方案。
当我测试我的猫鼬用户模型时,生成了这个 error/warning:
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
有关,但我不知道如何解决。有人可以帮助我并告诉我如何修复它以便不显示 error/warning。
您需要插入一个 promise 库(q、bluebird、es6 之一...)
mongoose.Promise = require('bluebird');
下面是一个可能有帮助的示例。
使用 es6 模块(而不是 CommonJS require)这对我有用:
// mongoose's Promise library is deprecated, using es6's:
import es6Promise from 'es6-promise';
mongoose.Promise = es6Promise.Promise;
你可以参考
How to use mongoose Promise - mongo
页面内容:
On this page:http://mongoosejs.com/docs/promises.html
The title is Plugging in your own Promises Library
从节点 4.x 你可以只使用 ES6 承诺:
const mongoose = require('mongoose');
mongoose.Promise = Promise;
一段时间以来我一直收到此错误,我决定今天修复它,但在尝试修复一个小时后我找到了解决方案。
当我测试我的猫鼬用户模型时,生成了这个 error/warning:
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
有关,但我不知道如何解决。有人可以帮助我并告诉我如何修复它以便不显示 error/warning。
您需要插入一个 promise 库(q、bluebird、es6 之一...)
mongoose.Promise = require('bluebird');
下面是一个可能有帮助的示例。 使用 es6 模块(而不是 CommonJS require)这对我有用:
// mongoose's Promise library is deprecated, using es6's:
import es6Promise from 'es6-promise';
mongoose.Promise = es6Promise.Promise;
你可以参考 How to use mongoose Promise - mongo
页面内容:
On this page:http://mongoosejs.com/docs/promises.html
The title is Plugging in your own Promises Library
从节点 4.x 你可以只使用 ES6 承诺:
const mongoose = require('mongoose');
mongoose.Promise = Promise;