gpt4 book ai didi

node.js - promise Mongoose Connect 时出现类型错误

转载 作者:搜寻专家 更新时间:2023-11-01 00:17:28 25 4
gpt4 key购买 nike

我尝试使用 bluebird 来 Promisify Mongoose connect,我需要减少我的回调,所以我使用了 bluebird。但是它给了我下面的错误。

var expect = require('chai').expect;
var mongoose = require('mongoose');

var jobModel = require('../models/job');

var Promise = require('bluebird');

function resetJobs() {
return new Promise(function(resolve, reject) {
mongoose.connection.collections['jobs'].drop(resolve, reject);
});
};

function findJobs(query) {
return Promise.cast(mongoose.model('Job').find({}).exec());
};

var connectDB = Promise.promisify(mongoose.connect,mongoose);
describe('get jobs', function() {
it('Should not be empty since jobs are seeded', function(done) {
connectDB('mongodb://localhost/jobfinder').then(function() {
resetJobs()
.then(jobModel.seedJobs)
.then(findJobs).then(function(jobList) {
expect(jobList.length).to.be.at.least(1);
done();
});
});
});
});

但这给了我一个错误

Unhandled rejection TypeError: Cannot read property 'connection' of undefined
at Mongoose.connect (F:\MyProjects\JobFinder\node_modules\mongoose\lib\index.js:232:18)
at tryCatcher (F:\MyProjects\JobFinder\node_modules\bluebird\js\release\util.js:11:23)
at ret (eval at <anonymous> (F:\MyProjects\JobFinder\node_modules\bluebird\js\release\promisify.js:184:12), <anonymous>:14:23)
at Context.<anonymous> (F:\MyProjects\JobFinder\test\jobs-data-spec.js:22:3)

我使用的包版本如下

"bluebird": "^3.1.1",
"express": "^4.13.4",
"mongoose": "^4.3.6"

最佳答案

我正在编写相同的教程。
Bluebird 将 3.0 中的 api 从//2.x Promise.promisify(fn, ctx);//3.0 Promise.promisify(fn, {context: ctx});

我更改了调用,调用停止抛出错误。

Bluebird 的解释请看这里: http://bluebirdjs.com/docs/new-in-bluebird-3.html

希望对你有帮助

关于node.js - promise Mongoose Connect 时出现类型错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34968741/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com