You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Node.js应用中Cannot GET /错误的原因及解决咨询

解决Express应用的"Cannot GET /"错误

看起来你遇到的问题很明确:当访问localhost:9000/时,你的Express应用没有对应的路由来处理根路径的GET请求,所以返回了Cannot GET /。我们一步步来解决这个问题:

1. 理解问题根源

你的app.js里定义了多个业务路由(/Register、/Login、/addproduct、/allproduct以及挂载的/upload路由),但完全没有处理根路径/的GET请求。Express对任何匹配不到路由的请求都会返回404错误,也就是你看到的这个提示。

2. 添加根路径路由

在app.listen(9000)之前,添加一个处理根路径的GET路由即可。你可以返回一个API欢迎页,或者列出所有可用的端点,方便自己调试:

// 在app.listen(9000)代码前添加
app.get('/', (req, res) => {
  res.send(`
    <h1>API服务已启动</h1>
    <p>可用接口列表:</p>
    <ul>
      <li>POST /Register - 提交用户注册数据</li>
      <li>GET /Login - 获取所有用户信息</li>
      <li>POST /addproduct - 添加新产品</li>
      <li>GET /allproduct - 获取所有产品列表</li>
      <li>/upload - 文件上传相关路由(查看uploadRouter定义)</li>
    </ul>
  `);
});

3. 验证其他路由是否正常

其实你已有的业务路由是可以正常访问的,比如:

  • 访问localhost:9000/Login应该能返回数据库中的用户列表(如果有数据的话)
  • 访问localhost:9000/allproduct会返回所有产品的JSON数据

4. 关于启动命令的小提示

你尝试的nodemon start 9000是无效的,正确的启动方式:

  • 直接用npm start(你的package.json里已经配置了start脚本为nodemon app.js)
  • 或者直接运行nodemon app.js
  • 由于代码里已经硬编码了app.listen(9000),不需要额外指定端口,访问localhost:9000即可

修改完代码后,nodemon会自动重启应用,此时再访问根路径就能看到你添加的响应了。

内容的提问来源于stack exchange,提问作者Alku

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.13 07:42:19