nodejs表示如何获取嵌套的post请求的响应

时间:2012-08-27 14:55:40

标签: node.js express

以下代码收到一个post请求(使用express模块​​),创建一个新的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中,但我不知道如何访问它,因为我在不同的范围内,对吧?

谢谢, 李

1 个答案:

答案 0 :(得分: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 ) );
    }
  });

},