我有一些测试 - 即Supertest - 加载我的快速应用程序。这个应用程序创建一个Mongoose连接。我想知道如何从我的测试中检查该连接的状态。检查猫鼬连接状态而不创建新的连接
在app.js
mongoose.connect(...)
在test.js
console.log(mongoose.connection.readyState);
如何访问app.js连接?如果我在test.js中使用相同的参数进行连接,将创建一个新的连接或寻找现有的连接?
我有一些测试 - 即Supertest - 加载我的快速应用程序。这个应用程序创建一个Mongoose连接。我想知道如何从我的测试中检查该连接的状态。检查猫鼬连接状态而不创建新的连接
在app.js
mongoose.connect(...)
在test.js
console.log(mongoose.connection.readyState);
如何访问app.js连接?如果我在test.js中使用相同的参数进行连接,将创建一个新的连接或寻找现有的连接?
由于猫鼬模块输出一个单独的对象,你不必在你的test.js
连接到检查连接的状态:
// test.js
require('./app.js'); // which executes 'mongoose.connect()'
var mongoose = require('mongoose');
console.log(mongoose.connection.readyState);
输出 - 0 =断开连接, 1 =连接, 2 =连接, 3 =断开[(soucre)](http://mongoosejs.com/docs/api.html#connection_Connection-readyState) 我的凭据无效,它给4,我在官员文件或其他任何地方都找不到。 –
@AshwaniAgarwal检出[此文件](https://github.com/Automattic/mongoose/blob/4237515684bbab8401e579125f2a3b204765bd83/lib/connectionstate.js)。 – robertklep
我发现可以检查每个请求的连接状态的最佳解决方案。我已经把它放在一个中间件中传播数据库连接错误给客户端 – Tdy
彼此独立运行两个脚本或者是test.js app.js需要吗? – Bernhard
@Bernhard test.js需要app.js - 在app.js中我做var app = exports.app = express(),并且在测试中我需要('../ app.js')app – cyberwombat