我正在尝试构建一个简单的节点服务
我刚开始在节点中进行异步编程,一般来说,我很难理解如何在异步调用之间保留范围。
基本上 - 如何通过'req'将JSON服务'result'发送回原始GET请求?
我正在使用Express和Request,路由处理程序如下:
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?
}
})
答案 0 :(得分:1)
您可以直接返回回复,因此您可以在以下位置发表评论:
request(restURL, function (error, response, body) {
if (!error && response.statusCode == 200) {
var result = JSON.parse(body);
res(result)
}
})
这种方法的问题是你的客户端请求将等待第二个服务的响应,如果必须这样做就没问题。请注意您可能造成的延迟。
还要确保在出现错误的情况下也会返回回复。
这看起来很简单,如果我不完全理解你的问题,请告诉我。
干杯。
的Vitor。