3
我試圖建立一個處理服務器端的節點異步響應
- 處理來自Web客戶端的GET請求一個簡單的節點服務
- 解析提交的PARAMS
- 使用這些PARAMS查詢另一個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?
}
})
好吧,我看到 - 我只是覺得很奇怪,這個匿名函數的範圍如何? – mjr
也是在服務器端進行阻塞或者對服務器性能不好的做法? – mjr
** 1)**我剛剛收到我發現的第一個鏈接之一:http://coding.smashingmagazine.com/2009/08/01/what-you-need-to-know-about-javascript-scope/ 。內部作用域可以看到外部作用域(99%),但反之不起作用。這就是爲什麼你會首先使用匿名函數。使用函數引用不會讓你這樣做。 ** 2)**好吧,如果你必須這樣做,並且如果你保證你快速失敗,以防第二次服務很慢,那應該沒問題。作爲服務提供商,您公開了一個API,您在後面執行的操作取決於您,並且大多數服務都會有後續調用。 – bitoiu