Express.js路由异常:除首页、用户路由外其他路由返回404
Express自定义/hook路由返回404的解决方法
问题原因
你在路由配置中犯了路径重复定义的错误:
- 在
app.js中,通过app.use("/hook", hookRouter)为hookRouter设置了前缀路径/hook - 但在
hook.js路由文件里,又定义了router.get("/hook", ...),这会让该路由实际匹配的路径变成/hook/hook - 当你访问
/hook时,没有对应的路由处理逻辑,因此触发404错误并渲染error视图
修正后的hook路由代码
将hook.js中的路由路径改为/,对应前缀后的根路径:
var express = require("express"); var router = express.Router(); /* GET hook page. */ router.get("/", function (req, res) { res.send("Hook Page Works"); }); module.exports = router;
验证
修改完成后重启Express服务,访问/hook即可正常返回预期内容。
补充说明
Express路由模块挂载时,模块内的路径是相对于挂载前缀的:
- 若挂载前缀为
/users,模块内的/对应/users,/detail对应/users/detail - 这样可以避免在每个路由里重复编写相同的前缀路径,保持代码简洁
内容的提问来源于stack exchange,提问作者Caleb Matthias
相关产品推荐
相关产品推荐

