had*_*adf 3 error-handling node.js
当 NodeJS 应用程序发生错误时,如果发生异常,服务器可能会崩溃并停止。
如何防止这种情况,以便服务器永远不会因错误而停止,而是返回错误代码?
- 编辑
这是导致服务器崩溃的方法(表 foo 不存在):
app.get('/articles/list', function(req, res) {
connection.query('select * from foo', function(err, rows, fields) {
if (err) throw err;
res.send(JSON.stringify(rows));
});
});
Run Code Online (Sandbox Code Playgroud)
-- 最佳解决方案最后,我找到了最适合我的解决方案:http : //rowanmanning.com/posts/node-cluster-and-express/
总之,它包括使用服务器集群,并在服务器退出时重新启动服务器
如果你正在使用express,你可以使用这个
function clientErrorHandler (err, req, res, next) {
if (req.xhr) {
res.status(500).send({ error: 'Something failed!' })
} else {
next(err)
}
}
app.use(clientErrorHandler);
Run Code Online (Sandbox Code Playgroud)
我建议你准备好这篇文章,它会为你澄清很多。JFK,请注意异步错误捕获,这是最常见的错误,一旦您拥有包含在try-catch. 此外,避免使用
process.on("uncaughException", () => {....})
Run Code Online (Sandbox Code Playgroud)
这是相当糟糕的,因为当一个未捕获的异常被抛出,你不能可靠地继续你的程序在这个point.Let它失败,并重新启动daemonizer's一样pm2,forever等。
| 归档时间: |
|
| 查看次数: |
10049 次 |
| 最近记录: |