Node.js mongo架构未使用默认mongoose连接

Node.js mongo架构未使用默认mongoose连接,node.js,mongodb,mongoose,mocha.js,Node.js,Mongodb,Mongoose,Mocha.js,考虑以下两个文件 // orgSchema.js var OrgSchema = new Schema({ ... }); exports.OrgDB = mongoose.model('Organization', OrgSchema); // orgs.spec.js var OrgDB = require('...').OrgDB; describe('organizations', function() { before(function(done) {

考虑以下两个文件

// orgSchema.js
var OrgSchema = new Schema({
   ...
});

exports.OrgDB = mongoose.model('Organization', OrgSchema);


// orgs.spec.js
var OrgDB = require('...').OrgDB;

describe('organizations', function() {
    before(function(done) {
        mongoose.Promise = Promise;
        mongoose.connect('...', done);
    });

    after(function(done) {
        mongoose.connection.close(function() {
            done();
        });
    });

    describe('simple test', function (done) {
        var org = new OrgDB();

        org.name = 'New Org';
        org.save(function(err) {
            if (err) done(err);

            done();
        });
    });
});
注意,我有两个文件。如果我将模式与mocha单元测试放在同一个文件中,那么一切都正常。但是,目前(架构位于不同的文件中),架构模型(例如,
mongoose.model
)无法识别已建立的默认连接,因此向我发出警告:

Mongoose:mpromise(Mongoose的默认承诺库)已被弃用,请插入您自己的承诺库:http://mongoosejs.com/docs/promises.html

错误是:

错误:超过2000毫秒的超时时间。对于异步测试和挂钩,确保调用“done()”;如果返回承诺,请确保其得到解决。

另外,如果我将
mongoose.Promise和connect
行放在模式文件中,一切都会正常工作


如何让架构使用/识别默认连接?

如果它是不同的文件,您需要做的是像使用架构一样导出连接。我会这样做:

const connection = mongoose.connect("mongourl")
mongoose.Promise = global.Promise
module.exports = connection
然后我会要求你在文件中使用连接