【发布时间】:2017-08-13 08:02:56
【问题描述】:
我很想知道一些关于 Node.js 异步和 MongoDB 的事情。 如果服务器在我连接之前启动,并且我的模板或 Ajax 依赖于数据库中的数据将提供服务(我预编译我的把手)HTML 文件会失败还是我的模板/Ajax 会等待连接然后继续?
如果它有效,我很想更好地了解它是如何运作的! 如果它失败了,我该如何优雅地“修复”它?
这是一个使用提升的解决方案示例(对我来说似乎很糟糕):
//connect to db
mongodb.connect("someDBplace",
(err, db)=>{
if(err){
return generalLogger.error(`The database has failed to connect: ${err}.`);
}else{ //start the server now:
generalLogger.info(`Connected to database: ${stringify(db.databaseName)}.`);
server.listen(`${port}`, (err)=>{
if(err){
generalLogger.error(err);
}
//for demo: console th eMIMEtype
generalLogger.info(`The Server started on port: ${port}.`);
});
}
});
【问题讨论】:
-
嗯?您没有尝试启动此代码吗?
-
是的,我做到了——它似乎工作正常,但我不确定。我也不知道为什么它会失败/有效,或者它是否是一个好的做法
-
在你的代码中,服务器实际上在哪里使用了数据库连接中的任何东西?向我们展示那部分,否则我们无法判断初始化完成之前会发生什么。
标签: javascript ajax node.js mongodb asynchronous