关于数据库连接的问题
发布于 2个月前 作者 hc2014 227 次浏览 来自 问答

我先说明下情况: 我用的是oracle数据库, 一般情况下(之前一直都是) 当我项目启动的时候,也就是在终端输入node server.js以后 立马就会显示数据库已经连接上了。 但是 今天下午,数据库卡了还是怎么地,连接要一会时间,所以在这种情况下,项目启动了,数据库实际上还没有连接。然后就各种报错了. 因为是练手的代码,所以我没有写异常捕捉,而且我认为如果是中途数据库断开了,捕捉异常是可以的,像这种项目启动的时候数据库登陆有延迟,如果去捕捉异常不太合适, 所以我自己有个想法,就是在 server.listen(3000); 监听启动之前 写一个死循环 来等待 数据库实例返回,

if(db.connection!=undefined){
    server.listen(3000);
    console.log("3000端口启动了!")
}else{
while (true){
    if(db.connection!=undefined){
    console.log("连接了!");
    }
    
貌似 这个真是单线程里面的死循环,就这样死了....
有没有前辈有好的解决方案,坐等前辈解答(顺便去看看nodejs的Process)
}
}
2 回复
app.get('/',function(req,res,next){
    if(db.connection!=undefined){
        res.render('sampleInput.html')
        console.log("3000端口启动了!!")
}else{
        res.render('err.html',{msg:"数据库正在链接中.."})
        setTimeout(function(){
                    res.redirect('sampleInput.html')
        },10000)
}
});

本来是想 重定向一个URL 但是这样会报错 Can’t set headers after they are sent. 不知道前辈们是怎么搞重定向的问题的

是数据库又设置超时机制,连接没用定时去刷新就会段吧

回到顶部