在CodeSandbox启动Express服务后访问localhost:3000出现Cannot GET/错误求助
问题原因及解决方法
问题原因
你的Express应用仅配置了POST /webhook路由,未对根路径GET /设置任何处理逻辑。当你在浏览器访问localhost:3000时,浏览器会发送GET请求到根路径,Express找不到匹配的路由处理,因此返回Cannot GET /错误。
解决方法
根据你的使用场景选择对应方案:
方案1:添加根路径GET路由(用于测试服务)
在app.post("/webhook", ...)代码之后添加以下代码,处理根路径的GET请求:
app.get('/', (req, res) => { res.send('服务已正常启动!'); // 也可以返回HTML内容,比如: // res.send('<h1>LINE Bot 服务运行中</h1>'); });
修改后重启服务,访问localhost:3000就能看到正常的响应内容,不会再出现404错误。
方案2:忽略根路径访问(仅作为LINE Webhook服务)
如果这个服务仅用于接收LINE的Webhook请求,无需通过浏览器访问根路径,那么Cannot GET /属于正常情况——你的服务本来就只处理POST /webhook请求。此时只需确保LINE平台能正确向/webhook发送POST请求即可,无需额外修改。
额外优化:添加全局404处理
为了统一处理所有未定义路径的请求,可以在所有路由配置之后添加全局404中间件:
app.use((req, res) => { res.status(404).send('请求的路径不存在'); });
内容的提问来源于stack exchange,提问作者Laiiaii
相关产品推荐
相关产品推荐

