使用app.use配置Express路由时出现404错误的问题排查
Express路由404错误排查与修复
你的问题出在路由路径叠加上,导致实际生效的访问路径和你预期的不一致:
- 在
app.js中,app.use('/about', aboutRouter)已经为aboutRouter模块添加了/about的路径前缀 - 但在
routes/about.js里,你又给路由设置了/about的路径,这会让两个路径拼接,最终生效的路径变成了/about/about - 当你访问
/about时,自然找不到对应的路由,返回404
对比你能正常运行的路由配置:
app.use('/', indexRouter)搭配indexRouter里的router.get('/'),实际路径是/app.use('/users', usersRouter)搭配usersRouter里的router.get('/'),实际路径是/users
修复方案
修改routes/about.js中的路由路径,把/about改为/:
const express = require('express'); const router = express.Router(); /* GET about page. */ router.get('/', function(req, res, next) { res.render('about', { title: 'About' }); }); module.exports = router;
这样配置后,访问/about就能正确匹配到路由,渲染对应的页面了。
内容的提问来源于stack exchange,提问作者Ginz77
相关产品推荐
相关产品推荐

