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

看板Programming作者 (未來的方向)時間10年前 (2014/11/05 21:48), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
不知道本版可不可以用來詢問 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(); }; -- -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.231.13.133 ※ 文章網址: http://www.ptt.cc/bbs/Programming/M.1415195281.A.279.html
文章代碼(AID): #1KMYgH9v (Programming)
文章代碼(AID): #1KMYgH9v (Programming)