【问题标题】:How to create a Response Object in Node.js/Express如何在 Node.js/Express 中创建响应对象
【发布时间】:2016-10-27 12:47:43
【问题描述】:

我需要做一个 res.redirect('/signin'),但是我的 res 已经在 res.render 上用完了。 有没有办法可以定义一个新的响应对象(res)来执行重定向?

【问题讨论】:

  • 您要重定向,还是要渲染页面?至少从服务器端的角度来看,这是两个相互排斥的东西。
  • @roberklep 我想重定向。
  • 那就不要使用res.render

标签: javascript node.js express


【解决方案1】:

我认为如果您使用 write!! 保持连接打开,您应该能够添加重定向。例如.. ->

res.render('index', function(err, html) {
  res.write(html);
  res.redirect('/signin');
});

【讨论】:

  • 您的答案以这种简单的形式有效,但我太深了,无法按照您的建议保持打开状态。
【解决方案2】:

根据他们的文档 (http://expressjs.com/en/4x/api.html#res.render),如果您使用 res.render,它将自动发送响应(除非您传递回调)。

我找不到任何方法来创建新的 res 对象或恢复 res.render 调用。无论如何,如果您只想重定向到另一个 url,您真的应该避免渲染模板。服务器完成的工作更少,用户等待的时间也更少。

【讨论】:

  • 我需要做一个重定向,这样我才能使用 router.get 这个请求并打开一个新的登录页面,最终将客户端返回到他们必须登录之前的位置。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-11-12
  • 1970-01-01
  • 2022-07-30
  • 2018-06-25
  • 2017-09-02
  • 2015-12-06
  • 1970-01-01
相关资源
最近更新 更多