node.js - 如何捕捉 serverOpening 事件?
问题描述
这是我的问题。承认我的 BDD 因任何原因崩溃,我希望能够捕获此事件以停止我的网站,因为它仅取决于我的 BDD。
我的问题是当我停止 mongoDB 或重新启动它时我无法捕捉到。
import { MongoClient } from 'mongodb';
let __mongodbClient;
export async function getMongoDBClient() {
if (__mongodbClient == null) {
__mongodbClient = await MongoClient.connect(
MONGODB_URL,
{
appname: 'Test',
useNewUrlParser: true,
ignoreUndefined: true,
authSource: MONGODB_AUTH_SOURCE,
auth: MONGODB_AUTH,
poolSize: 30,
}
);
console.log(__mongodbClient);
__mongodbClient.on('serverOpening', () => {
console.log('serverOpening');
});
__mongodbClient.topology.on('close', (...args) => console.log('Connection closed', args) );
__mongodbClient.on('reconnect', () => console.log('reconnect'));
__mongodbClient.on('serverClosed', () => console.log('server closed'));
__mongodbClient.on('error', () => console.log('error') );
}
return Promise.resolve(__mongodbClient);
}
那有什么问题?它不会发生任何事情。没有错误。谢谢帮助
解决方案
将代码替换为以下
let db = _mongodbClient.db('your db name');
db().on('serverOpening', () => {
console.log('serverOpening');
});
db.on('reconnect', () => console.log('reconnect'));
db.on('serverClosed', () => console.log('server closed'));
db.on('error', () => console.log('error') );
它应该工作
推荐阅读
- ssh - 打包程序中的“ansible”供应商失败 - “无法解析主机名”
- javascript - 我想在用户按下按钮后将所有背景:Rgb(36,36,36) 更改为白色
- image - 编码和解码后的图像全为零
- odoo - Odoo - 用数据填充字段
- javascript - 扩展树时CSS过渡不起作用
- javascript - 如何访问函数内部的变量。js中的ES6模块?
- mysql - SQL 语句根据总销售额按销售额排名对客户进行排序
- php - 如何选择几个数组元素并检查它们是否等于变量
- ruby-on-rails - Rails 总是构建和安装 node-sass
- azure - Azure API 管理 - 液体转换不再起作用