Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/42.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
Javascript 如何在expressjs中重定向后进行回调_Javascript_Node.js_Express_Url Routing - Fatal编程技术网

Javascript 如何在expressjs中重定向后进行回调

Javascript 如何在expressjs中重定向后进行回调,javascript,node.js,express,url-routing,Javascript,Node.js,Express,Url Routing,我正在使用重定向到一个页面 res.redirect('/pageOne'); 所以在重定向之后我想调用一个函数,但是当我调用这个函数时 res.redirect('/pageOne'); callBack(); 我发现回调在重定向之前执行 那么有没有办法将回调传递到重定向?根据its编号。有没有其他解决方法?根据,没有办法将回调传递到重定向方法。但是,由于响应对象res,这反过来又是一个,因此您可以监视相关事件。例如,您可以尝试finish事件: 事件:“完成” 当调用end()并且没

我正在使用重定向到一个页面

res.redirect('/pageOne');
所以在重定向之后我想调用一个函数,但是当我调用这个函数时

 res.redirect('/pageOne');
 callBack();
我发现回调在重定向之前执行

那么有没有办法将回调传递到重定向?根据its编号。有没有其他解决方法?

根据,没有办法将回调传递到
重定向
方法。但是,由于响应对象
res
,这反过来又是一个,因此您可以监视相关事件。例如,您可以尝试
finish
事件:

事件:“完成” 当调用
end()
并且没有更多的块可写时,将发出此事件

那么比如说,

res.on('finish', callback);
res.redirect('/pageOne');

我希望(我猜这就是问题的核心)回调会在下一页处理完重定向调用后执行,但情况并非如此:事件会在几毫秒后触发。考虑到这一点,我认为以一般方式处理这种情况非常困难(重定向可能会转到完全不同的服务器)。不过,我还是想知道一种基于express的解决方案,以防重定向到同一服务器应用程序上的页面。@Muzietto你是什么意思?在新URL完成呈现后调用回调?加载?是的,这将更加困难,我认为需要应用程序级代码。所有的
重定向
实际上是在响应中发送一个特殊的头,然后响应结束并刷新。