我想知道如何在nodejs中完成这项工作。
我有一个看起来像这样的.get
app.get('/someurl', function(req, res) {
response = somefunc_call_to_server();
res.send(response);
});
但是这将是一个阻塞调用,如何更改它以处理/ someurl中的并行请求?
感谢, VIK。
答案 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);
});
});