小记NodeJS两项小技巧(与HTTP相关)

1,兼容HTTP1.1和HTTP1.0

  区别在content-length,1.0接受定长,不接受变长,导致transfer-encodeing的chunked模式无法识别,最终导致无法识别BODY。需要在HTTP1.1的header中指定content-length。

2,作为HTTP客户端如何设定超时

  除了异步之外,http request也是个头大的问题,给自己加个超时可以是程序更健康,推荐如下做法。在req.end()之后,加上settimeout,如下。

  setTimeout(function(){
        req.abort();
        //console.log(JSON.parse(body));
        if(!body)
        {
        console.log("服务器没有响应,在延迟3秒后退出")
        o_req.flash('success', '查询超时!');
        o_res.render(obj, {
            title: '查询',
            query_z: '后台正在拼命加速',
            query_rt:'喝口水,请稍等片刻',
            success: o_req.flash('success').toString(),
            error: o_req.flash('error').toString()});
        }
    },2000);

  

posted @ 2014-02-24 19:10  RichardParker  阅读(229)  评论(0编辑  收藏  举报