Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 是否有办法响应特定(req,res)函数之外的GET\POST?_Node.js_Express_Request_Response_Low Level - Fatal编程技术网

Node.js 是否有办法响应特定(req,res)函数之外的GET\POST?

Node.js 是否有办法响应特定(req,res)函数之外的GET\POST?,node.js,express,request,response,low-level,Node.js,Express,Request,Response,Low Level,使用Express NodeJS,是否有办法保存请求的详细信息,以便稍后进行响应?基本上,让请求等待响应。不使用setTimeout、sleep或任何其他延迟 例如,如果这是我的功能: function(req, res) { var data = req.body; setTimeout(function() { res.json(data); }, 3000); } 是否可以在该功能范围之外使用req、res对象,并在以后成功响应特定请求?例如30秒

使用Express NodeJS,是否有办法保存请求的详细信息,以便稍后进行响应?基本上,让请求等待响应。不使用setTimeout、sleep或任何其他延迟

例如,如果这是我的功能:

function(req, res) {
    var data = req.body;
    setTimeout(function() {
        res.json(data);
    }, 3000);
}

是否可以在该功能范围之外使用req、res对象,并在以后成功响应特定请求?例如30秒之后,或者在代码的不同部分,我不这么认为。请求/响应特定于处理程序调用。

是的,这是可能的。您只需在调用res.json或发送响应的任何其他函数之前调用一个长时间运行的非异步阻塞函数,例如

function(req, res) {
    var data = longRunningNonAsyncFsCall();
    res.jsonp(data);
}

我不认为setTimeout是您所需要的。

不要使用setTimeoutsounds,就像您正在寻找长轮询一样。。。也许像这样的图书馆?当你说“或在代码的不同部分”,你的意思是在不同的执行点?当你说“晚些时候”时,你是指物理时间还是节目中的晚些时候?你有任何来源来支持你的答案吗?