我正在尝试构建一个简单的节点服务
我刚刚开始在节点中进行异步编程,通常我很难理解如何在异步调用之间保留范围。
基本上-如何通过'req‘将JSON服务“结果”发送回原始GET请求?
我使用的是Express和请求,路由处理程序如下所示:
exports.list = function(req, res){
var params = req.query;
var queryParam= params.queryParm;
var restURL = "http://some-json-service.com?queryParam=" + queryParam;
var request = require('request');
request(restURL, function (error, response, body) {
if (!error && response.statusCode == 200) {
var result = JSON.parse(body);
// ? How do I send result back to the req?
}
})
发布于 2013-06-25 08:47:47
您可以直接返回响应,因此,在有评论的地方,您将进行如下操作:
request(restURL, function (error, response, body) {
if (!error && response.statusCode == 200) {
var result = JSON.parse(body);
res(result)
}
})
这种方法的问题是,您的客户端请求将等待来自第二个服务的响应,如果必须这样做,这是很好的。只是要注意你可能造成的延迟。
此外,请确保在发生错误时,您也返回一个响应。
这似乎很简单,所以如果我没有完全理解你的问题,请告诉我。
干杯。
维托。
https://stackoverflow.com/questions/17302772
复制