最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

Express.jswhile

运维笔记admin21浏览0评论

Express.js / while

Express.js / while

app.post('/process', function(request, response){  
  var i = 0;
    while(i < data.length){
        if(data[i].condition1 == condition1 && data[i].condition2 == condition2){
            response.redirect('/first_page');
          }
          i++;
      }
      response.redirect('/second_page');
}

我试图使条件1和条件2为真,请重定向到第一页。如果错误,则重定向到第二页。但是它一直在发生错误。这是日志。

错误[ERR_HTTP_HEADERS_SENT]:将标头发送到客户端后无法设置标头

回答如下:

[如果您要重定向到“ first_page”,如果数组数据中的任何一项都与条件匹配,则为“ second_page”,如果都不与条件匹配,

对您的代码的最简单的更改是

app.post('/process', function(request, response) {
  var i = 0;
  while (i < data.length) {
    if (data[i].condition1 == condition1 && data[i].condition2 == condition2) {
      response.redirect('/first_page');
      return; // done, no need to check any more of data
    }
    i++;
  }
  response.redirect('/second_page');
});

但是,将Array#some与if / else一起使用将有效

app.post('/process', function(request, response) {
  if (data.some(item => item.condition1 == condition1 && item.condition2 == condition2)) {
    response.redirect('/first_page');
  } else {
    response.redirect('/second_page');
  }
});

[data.some将返回true,如果数据中的任何一项与条件匹配,否则将返回false

就个人而言,我更喜欢Array.some代码,因为它更整洁,而且对正在发生的事情更明显]

与本文相关的文章

发布评论

评论列表(0)

  1. 暂无评论