[问题] 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