猫鼬createConnection无法启动,没有错误

时间:2018-09-20 14:20:03

标签: node.js mongoose

我制作了多个数据库应用程序。当我将代码连接到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);
});

1 个答案:

答案 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));
}