[問題] node.js回傳response的問題(http)

作者: akdsy (未來的方向)   2014-11-05 21:47:58
不知道本版可不可以用來詢問 node.js的問題??
不可以的話再麻煩版主或是通知我刪掉,謝謝~
正題開始:
我想要以node.js作為後台做到以下的流程
1.接收用戶的 http request(單元測試OK)
2.分析 method post的參數資料(單元測試OK)
3.承2,將資料送往其他web service (假設此service叫做 service1)
且我寫了另外一個method(假設這個method叫做httprequestToOtherServer)
來執行呼叫service1
4.接收service1 回傳的資料再送給用戶(單元測試OK)
因為node.js執行是以事件方式,所以不會等待service1回傳資料,
我把http的response也當作參數傳給了 執行service1的 method,
由此method來決定什麼時候回傳資料給用戶。
這樣做在測試時還算正常,
但是我不是很確定我這樣的開發方式,
會不會會有問題,
為了讓各位先進容易看,
以下大概是我的寫法,
希望有先進可以提出點改進的看法,
十分感謝
(省略require)
function WebService(){
var server = http.createServer(function (request, response) {
//省略routing的解析
if(path=="/Signup"){
if(request.method=="POST"){
//逐步取得資料
request.addListener("data", function (postDataChunk) {
postData += postDataChunk;
});
//取得所有的資料
request.addListener("end", function () {
//省略解析取得資料
//以下是我寫法的重要問題點
//呼叫另外一個web service
//把response也做參數傳送進去
httprequestToOtherServer("123",response);
});
}
}
}).listen(8888,BASE_URL);
console.log("Server is listening port ");
}
//啟動web service
WebService();
//將原本的http response作為參數傳進來
var httprequestToOtherServer = function(parameter,HTTPResponse){
var options = {
//這邊是service1 IP 等設定,省略
}
};
var req = http.request(options, function(res) {
res.on('data', function (chunk) {
//我問題的另外一個地方
//回傳資料開始
//利用參數HTTPResponse,來回傳資料給用戶
HTTPResponse.writeHead(200, {..省略...});
HTTPResponse.end(chunk);
});
});
//省略error handle
req.write(data);
req.end();
};

Links booklink

Contact Us: admin [ a t ] ucptt.com