节点 - 根据第一个结果回调第二个http.request

时间:2015-03-11 23:14:51

标签: node.js xmlhttprequest

我在NodeJs中使用http.request调用API。

该调用旨在在外部服务上创建新项目。为此,需要提供label参数。如果成功,则返回状态代码200和JSON格式的新创建的项目。如果该项目已存在,则返回404.获取该项目需要调用其他方法。

以下是我实施它的方法:

function logError(err) {
    console.log(err)
}

function doSomething(chunk) {
    console.log(chunk)
}

if (var == true) {

    var domain = 'domain',
        port = 80,
        pathNew = '/api/v2/new?label=' + label + '&api_key=' + process.env.API_KEY,
        pathGet = '/api/v2/get?label=' + label + '&api_key=' + process.env.API_KEY,
        method = 'GET';         

    http.request({
        host: domain,
        port: port,
        path: pathNew,
        method: method
    }, function(res) {

        res.setEncoding('utf8');

        if( res.statusCode == '404') {

            http.request({
                host: domain,
                port: port,
                path: pathGet,
                method: method
            }, function(res2) {

                res2.setEncoding('utf8');

                res2.on('data', doSomething);

            }).on('error', logError).end();

        }

        res.on('data', doSomething);

    }).on('error', logError).end();             

我意识到这可能不是最佳方式。我怎样才能以更简化的方式做到这一点?

0 个答案:

没有答案