我的Restify服务器依赖于通过异步函数和回调建立的数据库连接。我在Azure上托管它,服务器在一段时间不活动后关闭,但是当它唤醒时,它会重新启动Node.js。
这导致了一个错误,其中一个请求唤醒了服务器,由于尚未建立数据库连接而导致服务器崩溃。处理此问题的最佳方法是什么?
答案 0 :(得分:1)
我找到了一个似乎有效的解决方案,虽然我不明白为什么:
首先立即调用Restify中的任何use
函数,然后在连接数据库后调用listen
函数。这是一个例子:
var server = restify.createServer({
name: 'Example',
});
server.use(restify.bodyParser());
server.use(restify.queryParser());
function initializeServer() {
server.listen(80);
console.log("The server is now active.");
}
var database = new sql.Connection(function (err) {
if (err) {
console.log(err);
} else {
initializeServer();
}
});