使用Node.js+Express时出现Cannot GET / 404错误,求问题排查
问题分析与解决办法
1. 根路径/访问404问题
你的Express服务器没有配置根路径/的GET路由,同时如果website目录下不存在index.html文件,app.use(express.static("website"))无法自动返回根页面,导致访问http://localhost:3000/时触发404错误。
解决方式二选一:
- 在项目根目录的
website文件夹中创建index.html文件(作为前端入口页面); - 手动添加根路径的GET路由,示例代码:
app.get("/", (req, res) => { res.send("首页内容"); // 可替换为实际页面内容或渲染模板 });
2. POST请求调用错误
浏览器端调用postData时存在两个问题:
- URL参数错误:服务器配置的POST路由是
/animal,而你传入的是"addAnimal",且未以/开头,会导致请求路径拼接错误; - 服务器端
addAnimal函数未返回响应:客户端请求会一直处于挂起状态,最终超时。
解决步骤:
- 修改浏览器端的调用代码:
postData("/animal", { animal: "lion" }); - 完善服务器端的
addAnimal函数,添加响应语句:function addAnimal(req, res) { data.push(req.body); res.status(200).send("动物数据已成功添加"); // 或返回更新后的data数组 }
额外检查点
- 确认
website目录与服务器代码文件处于同一层级,避免静态资源加载失败; - 启动服务器后,检查控制台是否输出
running on localhost: 3000,确保服务正常运行。
内容的提问来源于stack exchange,提问作者user21975599
相关产品推荐
相关产品推荐

