在过去的几个小时里,我一直在努力寻找关于如何处理 NodeJS + ExpressJS 3 api 错误的体面教程。
我已经阅读了很多关于 SO 的问题/答案并阅读了官方的 ExpressJS 指南,但仍然无法弄清楚做如此重要的事情的正确方法。我找到的大多数答案都与 Express 1 或 Express 2 相关,但不再适用,ExpressJS 指南只是描述了一些断章取义的内容,这使得它很难理解。
所以这是我的用例:我想使用 GET /cities/:slug 获取有关城市的信息。如果 slug 不存在或发生错误(例如 MongoDB 或 Mongoose),我想返回一个错误代码。
这是我当前代码的相关部分:
if (err || !city) {
res.json({code:500, city:[]});
}
这是一个基本的例子,它工作得“很好”,但我很确定这不是在 NodeJS 中做这件事的正确方法。
此外,这不会停止我的 NodeJS 实例,但可能会出现一些意外错误。根据我的阅读,这在生产中不是问题,因为显然重新启动 NodeJS 实例更干净,并且第三方可以很好地处理它(阅读有关Cluster、Forever甚至Monit的信息)。
希望对我忽视了太久的这个问题有更多的见解。