Node.js路由配置拆分后访问/add出现Cannot GET /add报错原因是什么
问题根因
你当前的报错是路由路径不匹配导致的,Express 路由挂载规则如下:
- 使用
app.use(前缀路径, 路由实例)挂载路由时,路由实例内部定义的所有路由路径都会自动拼接上挂载前缀。
你的代码路由注册逻辑:
controller/board/board.js中定义了GET /add路由,绑定了api.add处理逻辑- 入口
index.js中,你将board路由实例挂载到了/board前缀下 - 最终实际可访问的完整路由是
GET /board/add,你访问的/add没有匹配的注册路由,因此返回404错误。
可选解决方案
二选一即可:
- 直接访问正确路径:访问
http://localhost:3000/board/add即可命中你写的业务逻辑 - 调整路由挂载前缀:如果需要直接通过
/add访问,将index.js中的app.use('/board', board);修改为app.use('/', board);即可
额外注意事项
你当前api.js中渲染模板的路径是__dirname + '/views/board/add.ejs',__dirname是当前文件api.js所在的目录(即controller/board),拼接后得到的完整模板路径是controller/board/views/board/add.ejs,请确认你的ejs模板文件实际存放位置和该路径一致,否则路由匹配成功后还会抛出模板找不到的报错。
内容的提问来源于stack exchange,提问作者류진현
相关产品推荐
相关产品推荐

