表达返回错误而没有退出响应

时间:2018-08-15 10:34:50

标签: javascript node.js express

我写了一个资源,用户可以向其发送数据。如果数据无效(验证返回RecyclerView),我需要向客户端发送错误500状态代码,但问题是,当我使用false时,程序退出 而且我只想取消此请求但对客户端有错误,而不是停止程序...

res.status(500)

1 个答案:

答案 0 :(得分:1)

请注意,执行res.status(500).send({ error: 'invalid!' })不会终止当前功能。

所以->

function formHandler(req, res, next) {
  let isValid = validate(fields.token)
  if (!isValid) {
    res.status(500).send({ error: 'invalid!' })
  }
  //so the code below will even run in invalid state
  res.send("this piece of code will run no matter what");

您可以调用return或使用else块。例如。

function formHandler(req, res, next) {
  let isValid = validate(fields.token)
  if (!isValid) {
    res.status(500).send({ error: 'invalid!' });
    return;
  }
  res.send("this piece of code will only run if isValid");

再次执行第二次res.send很可能会给您带来错误,因为第一个res.send将关闭连接。