这是我的问题。承认我的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);
}
这有什么问题? 它什么都不会发生。没错 寻求帮助
答案 0 :(得分:0)
使用以下代码替换代码
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') );
它应该可以工作