【问题标题】:node.js express.js Error handling in Viewnode.js express.js View 中的错误处理
【发布时间】:2013-04-24 03:24:02
【问题描述】:

我对 node.js 和 express.js 以及编程概念非常陌生。我已经在 node 和 express 上制作了一个基本的 MVC 建模应用程序。

我的问题是你如何处理错误,我得到以下代码:

exports.submitBloodRequest=function(kaiseki,resView,request){
    var params = {
        bloodCenterId:request.session.centerID,
        bloodTypeId: request.body.bloodType,
        requestQuantity:request.body.numberOfDonors
    }
    kaiseki.createObject('blood_center_request', params, function(err, res, body, success) {
      if(success){
        resView.redirect('/bloodRequest')
      }else{
        //WHAT TO DO HERE?
      }
    });
}

Kaiseki 只是 parse.com 的一个中间件,如果出现错误我不知道该怎么办。通常我使用 ajaxForm.js 来查找 BadRequest,然后使用 javascript 在我的视图中显示错误消息。

我希望我的错误出现在同一个页面中,它是成功的,我应该将 json 错误传递给我的视图吗?

或者仍然使用 ajaxForm.js 而不是 res.render 或 res.redirect 我应该使用 res.status(500)

是否有办法处理错误并将其显示到视图中。不使用任何 javascript 来检测 BadRequest?

视图可以有一个可选变量吗?在我看来,如果我没有传递任何值,它会给我错误,就像我有 #{variable} 它要求它的值。可以让它成为可选的吗?我用的是翡翠模板

【问题讨论】:

  • 这应该是 2 个独立的问题,除非您指定您使用的几十个流行模板引擎中的哪一个,否则我们无法智能地回答模板问题。
  • 我会编辑它。我用的是翡翠模板。

标签: node.js error-handling express


【解决方案1】:

要响应带有错误的 XHR 请求,您可以执行类似 return resView.status(500).send(err); 的操作,这会将 err 对象作为 JSON 发送回。如果你想渲染一个 HTML 错误页面,你可以这样做return resView.status(500).locals({err: err}).render('/errorPage');

您没有说明您使用的是哪个模板引擎,但#{} 版本很可能会自动为您转义 HTML 字符(将 < 转换为 < 等)以避免 XSS 攻击和呈现问题,而 @ 987654327@ 将直接渲染变量的内容而不进行转义,如果变量包含任何用户生成的内容,这很危险,但如果变量具有您希望由浏览器渲染的 HTML,则这是必要的。

【讨论】:

    猜你喜欢
    • 2011-11-01
    • 1970-01-01
    • 2014-01-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-17
    • 2018-10-05
    • 1970-01-01
    相关资源
    最近更新 更多