Node.js 节点-在不崩溃的情况下处理数据库错误
无论数据库的类型如何,我都无法清楚地了解在不使应用程序崩溃的情况下处理db错误的最佳方法Node.js 节点-在不崩溃的情况下处理数据库错误,node.js,Node.js,无论数据库的类型如何,我都无法清楚地了解在不使应用程序崩溃的情况下处理db错误的最佳方法 e.g connecting with sql pool.getConnection(function(err, connection) { if (err) { throw err } connection.execute('select * ...' , values, function(err, result) { if (err) { throw err;
e.g connecting with sql
pool.getConnection(function(err, connection) {
if (err) {
throw err
}
connection.execute('select * ...' , values, function(err, result) {
if (err) {
throw err;
}
});
});
在上述两种情况下,我抛出的错误都会导致节点服务器崩溃。
我想注册错误并以最优雅的方式响应请求。有人能指出正确的方向吗?当你抛出错误时,需要有人抓住他们。如果在代码中的任何地方都没有捕捉到它们,就会导致程序崩溃 因此,基本上您需要做的是用try/catch包装对函数的调用,如果您捕获了,请记录它并向请求者返回适当的响应 比如:
try {
pool.getConnection(function(err, connection) {
if (err) {
throw err
}
connection.execute('select * ...' , values, function(err, result) {
if (err) {
throw err;
}
});
});
} catch (error) {
log(error);
res.status(500).body("failed to get ... " + err).send();
}
我还建议阅读,对主题有很好的解释注意,这只适用于同步javascript。这个问题很可能涉及异步js,它不适用于try/catch(您链接的站点明确声明
“此模式不起作用!”
)。这将不起作用,因为您无法以这种方式捕获异步异常。