我有一些测试 - 即Supertest - 加载我的Express应用程序.这个应用程序创建一个Mongoose连接.我想知道如何从我的测试中检查该连接的状态.
在app.js
mongoose.connect(...)
Run Code Online (Sandbox Code Playgroud)
在test.js中
console.log(mongoose.connection.readyState);
Run Code Online (Sandbox Code Playgroud)
如何访问app.js连接?如果我在test.js中使用相同的参数进行连接,那么会创建一个新连接还是查找现有连接?
rob*_*lep 119
由于mongoose模块导出单个对象,因此您无需连接test.js以检查连接状态:
// test.js
require('./app.js'); // which executes 'mongoose.connect()'
var mongoose = require('mongoose');
console.log(mongoose.connection.readyState);
Run Code Online (Sandbox Code Playgroud)
准备状态是:
我将它用于我的 Express Server mongoDB 状态,在那里我使用了 express-healthcheck 中间件
// Define server status
const mongoose = require('mongoose');
const serverStatus = () => {
return {
state: 'up',
dbState: mongoose.STATES[mongoose.connection.readyState]
}
};
// Plug into middleware.
api.use('/api/uptime', require('express-healthcheck')({
healthy: serverStatus
}));
Run Code Online (Sandbox Code Playgroud)
当数据库连接时,在 Postman 请求中给出这个。
{
"state": "up",
"dbState": "connected"
}
Run Code Online (Sandbox Code Playgroud)
当数据库关闭时给出此响应。
{
"state": "up",
"dbState": "disconnected"
}
Run Code Online (Sandbox Code Playgroud)
(响应中的“up”代表我的 Express Server 状态)
易于阅读(无需解释数字)
| 归档时间: |
|
| 查看次数: |
41552 次 |
| 最近记录: |