Node.js Express - 基于错误类型处理不同的错误

时间:2015-07-06 21:51:21

标签: ajax node.js express error-handling handlebars.js

一些细节......我使用Express 4,Node 0.12.2和Express-Handlebars作为我的视图引擎。

我正在尝试通过AJAX调用渲染部分内容,并希望以不同方式处理不同的错误类型。在回调调用上传递的错误对象似乎没有太多有用的信息可用,只是一个错误消息。这里有什么我想念的吗?

// Search (Partial)
router.get('/search-products', function (req, res, next) {
    res.render('partials/search/products', {layout: 'ajax'}, function(err, html){
        if(err) {
            // return res.status(404).send(err);
            // return res.status(500).send(err);
        }
        res.send(html);
    });
});

1 个答案:

答案 0 :(得分:1)

该错误对象不具有状态代码,因为它是视图引擎生成的错误对象。如果填充了该错误,您几乎可以认为它是500错误,因为视图引擎由于某种原因无法编译视图。

例如,如果您正在使用Jade,那么如果您尝试让Jade编译具有无效Jade语法的模板,则将填充该错误对象。那里的错误永远不会与HTTP相关,这意味着它总是只是服务器端错误,状态代码500就足够了。