Express+MySQL项目出现Cannot GET / 404错误的原因求助
我来帮你逐个排查问题,先解决最关键的404错误,再说说那个不影响项目运行的SourceMap警告:
核心问题:Cannot GET / (404 Not Found)
这个错误本质是你的Express应用没有为根路径/配置任何路由处理逻辑,或者路由挂载的路径和你访问的地址不匹配。我们一步步拆解:
1. 检查server.js的路由挂载逻辑
先看你的server.js里是不是只挂载了用户相关的路由(比如/api/users),但完全没处理根路径。举个例子,如果你的server.js里是这么写的:
const userRoutes = require('./routes/user.routes'); app.use('/api/users', userRoutes);
那访问localhost:8080/肯定会返回404,因为这个路径根本没有对应的处理代码。
解决办法:
- 要么给根路径加个简单的响应,比如在server.js里补充一段:
app.get('/', (req, res) => { res.send('Express服务运行正常!'); // 也可以返回JSON格式:res.json({ msg: '欢迎访问我们的API' }); }); - 如果你本来就打算访问用户相关的API,那应该去访问正确的路径,比如
localhost:8080/api/users(具体路径要看你挂载路由时设置的前缀)。
2. 确认路由文件的配置是否正确
打开你的user.routes.js,看看里面的路由是不是正确定义的。比如如果你的路由文件是这样的:
const express = require('express'); const router = express.Router(); const userController = require('../controllers/user.controller'); // 获取所有用户的路由 router.get('/', userController.getAllUsers); module.exports = router;
这里的router.get('/')是相对于你在server.js里挂载的前缀的——如果挂载时用了/api/users,那实际访问路径是/api/users,而不是根路径/。
3. 再确认下服务是否正常启动
虽然你能看到404说明服务已经启动,但还是检查下server.js里有没有监听端口的代码:
const PORT = 8080; app.listen(PORT, () => { console.log(`服务运行在 http://localhost:${PORT}`); });
确保这段代码存在,不然服务根本无法启动。
关于第二个错误:DevTools failed to load SourceMap
这个错误和你的项目完全无关,是你Chrome浏览器里安装的某个扩展(ID为hnmpcagpplmpfojmgmnngilcnanddlhb)自身的问题——它的SourceMap文件找不到了。你可以:
- 暂时禁用这个扩展,看看错误是不是就消失了;
- 直接忽略它,完全不影响你的项目运行;
- 如果这个扩展是你自己开发的,那再去修复它的SourceMap路径配置。
总的来说,你现在的核心问题就是根路径没有对应的路由处理,要么加个根路由响应,要么去访问你已经配置好的API路径就行。那个SourceMap警告不用管它~
内容的提问来源于stack exchange,提问作者karec
相关产品推荐
相关产品推荐

