【发布时间】:2020-07-24 23:44:14
【问题描述】:
我正在开发一个 api,其中 api 的响应时间非常重要(在这个答案的上下文中:https://stackoverflow.com/a/60910024/4378475)我有两个数据库初始化,mongodb 和 firebase,我想准确计算需要多少时间连接这些数据库
这是我的代码:
const dbURI = `mongodb://xxxxxxxxxxxxxxxx`
let timeCounter = 0;
export function initMongoDb() {
timeCounter = Date.now();
if (mongoose.connection.readyState !== mongoose.STATES.connected
&& mongoose.connection.readyState !== mongoose.STATES.connecting) {
console.log("initializing mongoose");
mongoose.connect(dbURI, {
useNewUrlParser: true, useUnifiedTopology: true
}).catch(e => {
console.log("mongo connection failed for reason: ", e);
})
} else {
console.log("mongoose already connected: ", mongoose.STATES[mongoose.connection.readyState], "took: ", Date.now() - timeCounter, "ms");
}
}
mongoose.connection.on('connected', function () {//connected
console.log("mongooseListner: Mongoose is connected, took: ", Date.now() - timeCounter,"ms");
});
这给了我这样的日志:
> mongooseListner: Mongoose is connected, took: 1310 ms
或
> mongoose already connected: connected took: 0 ms
我想为 firebase 数据库做同样的事情,这是我的代码:
export function initFirebase(){
if (admin.apps.length === 0) {
console.log("initializing firebase database");
admin.initializeApp(functions.config().firebase)
}else{
console.log("firebase is already initialized");
}
}
但是 firebase initializeApp 方法没有提供(据我所知和到目前为止我所经历的文档)任何承诺或连接事件,所以我无法计算初始化实际需要多少时间
请建议我该怎么做,任何解决方法都会被应用
【问题讨论】:
标签: node.js firebase google-cloud-firestore google-cloud-functions firebase-admin