2012-08-27 30 views
1

下面的代码接收一个POST请求(使用Express模块​​)的响应,创建一个新的POST请求,并将其传递到另一个处理程序:的NodeJS表达如何得到一个嵌套的post请求

app.post('/commit', function (req, res) { 
    .... 
    var payload = { 
    .... 
    }; 

    request({ 
    method:'POST', 
    body:"payload=" + escape(JSON.stringify(payload)), 
    headers:{ '...' }, 
    url:publicUrl 
    }, function (err, res, body) { 
    if (err) { 
     return console.error(err); 
    } 
    console.log(res.statusCode); 
    }); 

    res.writeHead(200, { 'Content-Type': 'application/json' }); 
    var obj = {}; 
    obj['Status'] ="don't know how to get the access code"; 
    res.end(JSON.stringify(obj)); 
}, 

现在我希望能够将实际的状态码添加到JSON中,但是我不知道如何访问它,因为我处于不同的范围,对吧?

感谢, 李

回答

0

我首先想到的是去尝试这样的事情(注意我是如何感动的是建立应对来自POST请求的回调中的代码):

app.post('/commit', function (req, res) { 
    .... 
    var payload = { 
    .... 
    }; 

    request({ 
    method:'POST', 
    body:"payload=" + escape(JSON.stringify(payload)), 
    headers:{ '...' }, 
    url:publicUrl 
    }, function (err, postRes, body) { 
    if (err) { 
     res.writeHead(500, { 'Content-Type': 'application/json' }); 
     var obj = {}; 
     obj['Status'] = 'something went wrong: ' + err; 
     res.end(JSON.stringify(obj)); 
    } 
    else { 
     res.writeHead(200, { 'Content-Type': 'application/json' }); 
     var obj = {}; 
     obj['Status'] = postRes.statusCode; 
     res.end(JSON.stringify(obj)); 
    } 
    }); 

},