【问题标题】:Node exiting loop before handling all errors节点在处理所有错误之前退出循环
【发布时间】:2019-10-07 21:18:13
【问题描述】:

我正在使用 JS 对节点应用程序进行一些前端验证。我想遍历每个字段并返回一个错误,即字段值需要该字段。目前,如果一个字段为空,则将错误传回。但是,如果多个字段为空,它只会传回第一个错误。我将如何回传每个错误?代码如下:

app.post('/books/new', function (req, res, next) {
  let transaction;

  try {
    errors = [];
    let errorList = []
    for (let i in req.body) {
      if (!req.body[i]) {
        errorList.push(`${[i]} is a required field`)
        throw new Error(errorList);
      } else {
        break;
      }
    }

    Library.create({
      title: req.body.title,
      author: req.body.author,
      genre: req.body.genre,
      year: req.body.year,
    })
    res.redirect('/');
  }
    // if (!req.body) { throw new Error(`${req.params[0]} required`)  } else {

    // }

  // transaction.commit();
 catch (err) {
  errors.push(err.message);
  console.log('errors', errors);
  res.render('new-book', {
    errors: errors
  })
}
});

【问题讨论】:

    标签: javascript node.js loops validation frontend


    【解决方案1】:
        throw new Error(errorList);
    

    将退出for,从而结束方法

    不要把它扔在那里,而是在for之外

    if (errorList.length > 0) {
        throw new Error(errorList);
    }
    

    【讨论】:

      猜你喜欢
      • 2016-10-10
      • 2012-02-16
      • 2022-12-12
      • 1970-01-01
      • 1970-01-01
      • 2016-02-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多