节点 - 请求重试429错误?

时间:2015-11-15 21:18:01

标签: javascript node.js npm-request

我正在使用节点模块'request'向我的REST API发送一些JSON。

我有以下电话

request({
    uri: urlToUse, // Using the url constructed above.
    method: "POST", // POSTing to the URI
    body: JSON.stringify(jsonItems),
    headers: // Allows us to authenticate. 
    {
        'Content-Type' : 'application/json', 
        'Authorization' : auth 
    }},
    //What to do after the request...
    function(err, response, body)
    {
        // Was there an error?
        if (err)
        {
            // If so, log it.
            console.log(err);
        }
        // Did the server respond?
        if (response)
        {
            // Log it.
            console.log(response.statusCode);

            // Did the response have a body?
            if(body)
            {
                // Log it.
                console.log(body);
            }
        }
    });

我想补充一点 - 我希望能够对429状态代码执行操作 - 以便在完成之前重试请求。

我知道如何检测429(使用if语句来检查response.statusCode等),但我不知道如何重试,或者甚至是最好的方法。

1 个答案:

答案 0 :(得分:0)

在我看来,你想要做的只是将所有这些代码包装在一个函数中,然后让它自己调用,如果响应代码是429.也许甚至包括一个"尝试尝试"数字作为此功能的最后一个可选参数,您可以计算您调用它的次数,并根据您的偏好采取相应行动