小记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);

  

你可能感兴趣的:(nodejs)