首页 > 解决方案 > res.send 显示错误的结果,但 console.log 给相同的响应正确的结果

问题描述

我一直在尝试使用 res.send() 来显示响应,但它给我带来了错误的结果,但是当 console.logging 相同的响应时,它给了我正确的响应(这不是预期的)。

这是代码:

var alldata = wc2014.rounds.concat(wc2018.rounds);
   
    for(i = 0; i < alldata.length; i++){
      var a = alldata[0].matches;
      var b = alldata[1].matches;
      var result = a.concat(b);
    }

   
   for (var key in result) {
      if(result[key].goals1.length > result[key].goals2.length){
        var team1 = result[key].team1.name; 
        console.log(team1);
      }
      else{
        var team2 = result[key].team2.name;
        console.log(team2); 
      }
    }  

    res.send(team1 || team2);

控制台日志

德国
法国

res.send()

法国

标签: javascriptnode.js

解决方案


在你的“for”循环之外试试这个:

console.log(team1)
console.log(team2)
console.log(team1 || team2)

结果将是:

France
Germany
France

这意味着 team1 的值是法国,team2 也是德国 "(team1 || team2) " => 如果 team1 不为空,则等于 team1 如果 team1 为空或任何假值,则语句等于 team2 并且因为 team1 有一个值( France) res.send (team1 || team2) 就像 res.send(team1) 它将发送“France”作为响应。


推荐阅读