You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Express.js中根文件加载后如何为响应方法添加超时跳转功能

问题原因

你写的代码无法运行的核心原因是HTTP协议遵循一次请求对应一次响应的规则,调用res.render('index')之后已经把完整响应返回给了客户端,本次请求的连接已经结束,后续服务端执行的setTimeout内的res.render没有办法再给同一个请求返回第二次响应,所以必然运行失败。

正确实现方案

延时跳转的逻辑需要放在前端页面实现,服务端只负责返回带跳转逻辑的初始页面,具体实现步骤如下:

1. 调整服务端路由

先注册两个路由,分别对应初始页和跳转后的主页:

app.get('/', (req, res) => {
  // 渲染带跳转逻辑的初始页
  res.render('index')
})

app.get('/homepage', (req, res) => {
  // 渲染跳转后的目标主页
  res.render('homepage')
})

2. 在初始页模板中添加跳转逻辑

有两种常用实现方式,二选一即可:

  • 方式一:用meta标签实现无侵入自动跳转,无需写JS
    在index模板的<head>标签中添加如下代码:
<meta http-equiv="refresh" content="3; url=/homepage">

其中content属性里的3代表延时3秒跳转,url后面填你要跳转的路由地址。

  • 方式二:用JS实现自定义跳转逻辑,适合需要加自定义提示、动画的场景
    在index模板的任意位置添加如下JS代码:
<script>
setTimeout(() => {
  window.location.href = '/homepage'
}, 3000)
</script>

内容的提问来源于stack exchange,提问作者Henry kurbs

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 13:54:03