基于另一个http(s)查询的node.js(restify)服务器响应
我想使用下面的代码来设置restify node.js服务器:
server.get('/querySomething', function(req, res) { var toReturn = getSomethingElse(req.params); res = toReturn; ]); ... var getSomethingElse = function(params) { var somethingElse; var opts = { host: "some.host.com", path: "/x", method: "GET" } var req = https.request(opts, function(res) { res.on('data', function(someResult) { somethingElse = someResult; }); }); return somethingElse; };
我明白“https.request”调用是asynchronous执行的。
那么我怎样才能等待调用返回,然后再回应“/ querySomethingElse”http请求呢?
我提到你在那里有“返回”的东西,这是错误的,当你完成asynchronous代码处理事件时,你不会返回任何东西。
一种使用快递的方式是这样的:
server.get('/querySomethingElse', function(request, response) { var opts = { host: "some.host.com", path: "/x", method: "GET" } var req = https.request(opts, function(res) { res.on('data', function(someResult) { response.send(someResult); }); }); });