当前位置: 首页 > 面试题库 >

如何结束express.js /节点POST响应?

姜俊逸
2023-03-14
问题内容

在将文档保存到数据库后,我试图停止发布请求,即:

app.post('/blah'), function(req,res){ 
//my code does a bunch of stuff

res.what do i put here to tell the client browser to just... stop the POST
}

目前,我只是简单地使用res.redirect('back')哪个起作用,但是页面刷新是完全任意的,我希望它不会发生。我去了,res.end();但是那把客户带到了空白页。

提前致谢。

编辑:

我认为我在对不起我做事时不够清楚。

也许是不好的做法,但这正在发生:

  1. POST启动数据库保存功能

  2. 浏览器坐在附近等待响应

  3. 准备就绪后,将obj保存到数据库,然后回调触发一个 NowJS 函数,该函数将项目添加到视图(适用于所有人)

我这样做是为了不阻塞(所以我认为)


问题答案:

您可以使用res.end并传递要发送给客户端的字符串:

res.end('It worked!');

或者,您可以渲染视图,然后结束响应:

res.render('blah.jade');
res.end();

综上所述,重定向客户端实际上是最佳实践。这样一来,当他们在浏览器中单击“后退”按钮时,它们可以无缝地向后移动,而不会出现任何“需要POST”的弹出窗口等。这是POST
/重定向模式,您可以在http://en.wikipedia.org/wiki/Post/Redirect/Get上阅读有关它的更多信息。



 类似资料:
  • 根据消息,进程将重试并等待服务器节点加入,我认为这是默认行为!但是有没有办法为等待或最大重试次数设置超时呢?因为我不希望我的进程等待超过10秒。 下面是我用来启动ignite客户端的配置。

  • 我知道PUT和POST之间的主要区别是幂等性,但我想在实际的层面上理解它。 例如,假设我必须处理用户更改用户名的请求: 有哪些不同之处: 而且 你会用哪一个?

  • 当响应被关闭时,容器必须立即刷出响应缓冲区中的所有剩余的内容到客户端。以下事件表明 servlet 满足了请求且响应对象即将关闭: servlet 的 service 方法终止。 响应的 setContentLength 或 setContentLengthLong 方法指定了大于零的内容量,且已经写入到响应。 sendError 方法已调用。5.6 sendRedirect 方法已调用。 Asy

  • 问题内容: 这是我在Chrome 11和Firefox 4中测试过的代码段: 如您所见,我超时了,所以我可以测试是否在之前输出。以我的经验,虽然不是。 有没有一种方法可以在结束响应之前输出数据,例如以包形式发送数据? 问题答案: 如果将内容类型更改为文本/纯文本,例如: 然后firefox将立即显示内容。Chrome似乎仍在缓冲(如果您编写更多内容,Chrome会立即显示它)。

  • 问题内容: 问题 我一直在寻找Express.js的请求/响应超时,但是一切似乎都与连接有关,而不是请求/响应本身。 如果请求花费很长时间,则应该超时。显然,这不应该发生,但即使是一个简单的错误,如具有不调用回调或不调用的路由处理程序,浏览器将永远等待答复。 空路由处理程序就是一个很好的例子。 固定 我 之前 添加了以下内容 ,并且似乎添加了超时功能。有人对此有任何经验/意见吗? 请注意,我已将超

  • 问题内容: 有没有办法关闭回应?我可以使用,但实际上并没有关闭套接字。 我要实现的目标:我正在编写一个与网络连接的Java程序,并为此编写了一个node.js服务器。Java代码: 但是,这只是一直挂着。没有端连接,仍在等待来自套接字的输入。 节点: 但是,它不会关闭连接。如前所述,java一直认为下一步会发生什么,因此它陷入了while循环中。 谢谢 问题答案: 通过设置HTTP标头关闭连接而不