在服务器端的节点中处理异步响应
Handling asynchronous responses in node on server side
我正在尝试构建一个简单的节点服务,
- 处理来自web客户端的GET请求
- 分析提交的参数
- 使用这些参数异步查询另一个REST服务
- 将REST服务结果返回到原始GET请求
我刚开始在节点中进行异步编程,通常我很难理解如何在异步调用之间保持作用域。
基本上,我如何通过"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?
}
})
您可以直接返回响应,因此在您有评论的地方,您将执行以下操作:
request(restURL, function (error, response, body) {
if (!error && response.statusCode == 200) {
var result = JSON.parse(body);
res(result)
}
})
这种方法的问题是,您的客户端请求将挂起来自第二个服务的响应,如果必须这样做,这是可以的。只要注意你可能造成的延误。
还要确保在出现错误的情况下也返回一个响应。
这似乎很简单,所以如果我没有完全理解你的问题,请告诉我。
干杯。
氟橡胶。
相关文章:
- 如何处理异步获取的数据
- 直接 Web 远程处理异步问题
- ExtJs 处理异步调用
- 处理异步函数
- 使用Canvas和ForEach处理异步调用
- window.set同步处理异步调用的超时
- 在应用程序框架中处理异步 Javascript 代码的最佳实践
- Redux - 智能组件 - 在挂载组件之前如何处理异步操作
- 节点.js处理异步
- 余烬集成测试错误.处理异步副作用
- 如何在JS socket.io聊天中处理异步用户数据
- 如何在JavaScript中处理异步函数结果
- 如何在 node.js 中处理异步应用程序中的模块
- 处理异步加载的函数中的无限循环
- 如何处理异步函数和集合
- 使用Ramda处理异步编程
- 在服务器端的节点中处理异步响应
- JQueryUI自动完成如何处理异步结果
- 如何使用JS承诺处理异步调用
- 在Node.js中处理异步循环的最佳模式