我们可以在发送响应之前停止在Node.js中通过http post请求进行的服务器进程吗?

时间:2017-03-07 12:36:53

标签: javascript ajax node.js express request

我已经创建了一个应用程序,其中我向节点服务器调用Ajax,但问题是,如果用户重定向到另一个页面,那么服务器继续处理Ajax调用发出的请求,并在完成该请求后,它启动处理新的重定向请求。

我使用express作为框架,我不想知道客户端中止函数,我需要做的就是停止服务器端处理Ajax调用的请求,并立即开始处理新的请求。

1 个答案:

答案 0 :(得分:0)

  

我需要做的就是停止Ajax调用请求的服务器端处理,并立即开始处理新请求。

如果您的服务器尚未处理新请求是否仍在处理旧请求,那么您就会遇到一个更大的问题,只能通过取消不再需要的请求来解决这个问题。

您的服务器应始终处理新请求,无论旧请求是否仍在处理中。为了确保它,您需要确保永远不要在处理程序中使用任何阻塞调用。没有像fs.readfileSync这样的函数(或名称中包含Sync的任何内容),没有长时间运行的forwhile循环(除非它们位于async function并且不会阻止事件循环)等。

如果您在处理新请求之前没有阻止旧请求,那么您将不会遇到问题中描述的问题,您在其中询问特定解决方案而不是问题,以及解决方案问一下有两个问题:它无论如何都无法解决问题,也无法实现。