我制作了多个数据库应用程序。当我将代码连接到db时,所有组件均正常工作。但是现在...我的应用程序正在连接到端口,但是数据库连接没有被触发。那意味着我所有的联系都停留在readyState = 2
上。没有错误,没有连接。我检查了大约500次其他文件-没有其他连接。我的连接代码:
const connectionOptions = {
useNewUrlParser: true,
auto_reconnect: true,
socketTimeoutMS: 0,
keepAlive: true,
reconnectTries: 30,
}
mongoose.Promise = global.Promise;
mongoose.main_conn = mongoose.createConnection(config.db.url, connectionOptions);
mongoose.hist_conn = mongoose.createConnection(config.db.hist, connectionOptions);
mongoose.main_conn.on("connected", function(){
console.log("Mongoose connected to " + config.db.url);
});
mongoose.main_conn.on("error", function(err){
console.log("Mongoose connection error" + err);
});
答案 0 :(得分:0)
错误很愚蠢。但是也许我的回答会对他人有所帮助。在sleep
中调用setTimeout
时,我在应用程序的一个文件中使用了JavaScript的Promise
。而且我在其中犯了一个错误:
function sleep (ms) {
return new Promise(resolve => setTimeout(resolve(), ms));
}
如您所见,我循环不断。它在连接完成之前就调用了,并冻结了我的应用程序。解决此错误后,应用程序即可正常工作:
function sleep (ms) {
return new Promise(resolve => setTimeout(() => resolve(), ms));
}