nodejs异步调用,如何在url处理多个请求

时间:2014-03-07 16:40:22

标签: javascript multithreading node.js asynchronous

我想知道如何在nodejs中完成这项工作。

我有一个看起来像这样的.get

app.get('/someurl', function(req, res) {
   response = somefunc_call_to_server();
   res.send(response);
});

但是这将是一个阻塞调用,如何更改它以处理/ someurl中的并行请求?

感谢, VIK。

1 个答案:

答案 0 :(得分:3)

Node不公开任何允许您从服务器同步请求数据的API。您似乎假设的关键是响应必须在回调中同步发送到服务器,但事实并非如此。对浏览器开放的套接字将保持连接状态,直到它超时,或者应用程序直接触发.end,或通过Express的辅助方法(如.send)。

一般来说,你可以通过以下方式完成任务:

app.get('/someurl', function(req, res, next) {
    somefunc_async_call_to_server(function(err, data){
        if (err) return next(err);

        res.send(data);
    });
});