我是Node.js的新手,但我想将它用作一个快速的Web服务器,它只需要一个请求uri,然后在一个返回
JSON流的内部服务上运行查询.
即像这样的东西:
http.createServer(function(request,response) { var uri = url.parse(request.url).pathname; if(uri === "/streamA") { //send get request to internal network server http://server:1234/db?someReqA -->Returns JSON ....? //send response to requestor of the JSON from the above get ....? } else if(uri === "/streamB") { //send get request to internal network server http://server:1234/db?someReqB -->Returns JSON ....? //send response to requestor of the JSON from the above get....? }.listen(8080);
我正在使用node.js的最新稳定版本 – 版本0.4.12.我希望这很容易做到,但我没能在网上找到一些例子,因为他们似乎都使用旧的API版本,所以我在错误后得到错误.
是否有人能够提供上述与新Node API一起使用的代码解决方案?
谢谢!
解决方法
这是一个代码,可以解释你的任务:
var http = require('http'); var url = require('url') var options = { host: 'www.google.com',port: 80,path: '/' //Make sure path is escaped }; //Options for getting the remote page http.createServer(function(request,response) { var uri = url.parse(request.url).pathname; if(uri === "/streamA") { http.get(options,function(res) { res.pipe( response ); //Everything from the remote page is written into the response //The connection is also auto closed }).on('error',function(e) { response.writeHead( 500 ); //Internal server error response.end( "Got error " + e); //End the request with this message }); } else { response.writeHead( 404 ); //Could not find it response.end("Invalid request"); } }).listen(8080);