基于另一个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); }); }); });