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

Express+Handlebars项目访问/index、/login路径提示Cannot GET报错求助

问题排查及修复方案

1. 路由配置错误(核心问题)

你当前仅配置了根路径/的GET请求处理规则,没有声明/index、/login路径对应的路由,Express找不到匹配的处理逻辑就会返回Cannot GET xxx的404报错。
此外你定义了两个重复的app.get('/', ...)规则,后定义的会覆盖前者,现在你访问根路径实际渲染的是login页面,而非你预期的index首页。
将路由部分代码修改为以下内容即可:

// ROUTES
// 根路径渲染首页
app.get('/', (req, res) => {
    res.render("index", { title: "Home" });
});
// 新增/login路径路由
app.get('/login', (req, res) => {
    res.render('login', { title: "Login" });
});
// 如果你需要/index路径也可以访问首页,额外新增以下路由
app.get('/index', (req, res) => {
    res.render("index", { title: "Home" });
});

2. express-handlebars版本兼容问题

如果你使用的是v6及以上版本的express-handlebars,旧的初始化写法已经废弃,会导致模板渲染报错,需要调整引入和初始化逻辑:

// 把原来的const hbs = require('express-handlebars')替换为
const { engine } = require('express-handlebars');
// 把原来的app.engine替换为
app.engine('hbs', engine({ extname: '.hbs'}));

修改完成后重启服务即可正常访问对应路径。

内容的提问来源于stack exchange,提问作者Quinn McDougall

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 12:00:03