三个郁闷的错误……搞了一下午……

  • 在nodejs下开发,发送http请求,一直没有response(回调一直没有触发……)
    • nodejs文档中的例子,在回调中调用req.end()。这是错误的,必须在发送请求的代码段中调用,var req =http.request(opts, callback)。而不是在callback里调用……
    • 错误示例, var req = http.request(opts, function(res){…; req.end();})
    • 修正示例, var req = http.request(opts, function(res){…;}; req.end();
  • javascript 循环中回调函数闭包引发的杯具
    • for(var i = array.length; i–;) setTimeout(function(){console.log(array[i])}, 100);
    • 输出全部为:undefined
    • 解决:
      function bugFix(unit){setTimeout(function(){console.log(unit)}, 100)}
      for(var i = array.length; i–;) bugFix(array[i]);
  • express编写rest服务,server已经使用server.use(express.bodyParser()),但请求中仍没有解释body。
    • 客户端发送的请求中,headers里加入“content-type”:”application/json”。那么express就会自动解析json,req.body就会有东西……
    • 由于测试用例里,缺少这个,所以,req.body一直undefined…

发表评论