Express路由访问异常:出现cannot GET /错误求排查方案
解决Express根路由"cannot GET /"的常见原因
从你描述的情况来看,服务器能正常启动但根路由无响应,大概率是路由配置或代码顺序出了问题,以下是几个最常见的排查方向:
未正确注册根路由
检查代码里是否写了针对/的GET路由处理。正确的写法应该是:const express = require('express'); const app = express(); const port = 3000; // 必须注册根路径的GET路由 app.get('/', (req, res) => { res.send('Hello World'); }); app.listen(port, () => { console.log(`Server running on ${port}`); });如果你把路由路径写成了
/index或者其他值,自然访问/会返回404。路由注册在
app.listen()之后
Express启动后(调用app.listen()),后续添加的路由不会被识别。所有路由定义必须放在app.listen()代码之前。HTTP方法不匹配
比如你误写了app.post('/', ...),但浏览器访问是GET请求,这种情况下服务器找不到对应的路由,就会返回"cannot GET /"。中间件拦截冲突
检查代码里是否有全局中间件(比如app.use(...))在路由前面,某些中间件(比如错误处理中间件、静态文件中间件配置错误)可能会阻断根路由的响应。
内容的提问来源于stack exchange,提问作者gautham lal
相关产品推荐
相关产品推荐

