有没有办法在特定(req,res)函数之外响应GET \ POST?

时间:2014-08-15 23:49:53

标签: 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秒,或代码的不同部分)

2 个答案:

答案 0 :(得分:0)

不,我不这么认为。请求/响应特定于处理程序调用。

答案 1 :(得分:0)

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

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

我不认为你需要setTimeout()