Node.js教程实践遇问题:访问/返回Cannot GET /而非Hello
问题分析与解决方案
核心问题
你遇到的Cannot GET /是因为你的代码里完全没有配置根路径/的GET请求处理逻辑,而且你写的res.send('Hello')是绑定在POST /notes这个接口上的——只有发送POST请求到/notes才会返回Hello,和你访问的根路径/完全是两个不同的路由。
具体解决方法
根据你的需求分两种情况处理:
情况1:想让访问GET /时返回Hello
直接在路由配置里添加根路径的GET路由即可,推荐修改app/routes/index.js:
const noteRoutes = require('./note_routes'); module.exports = function(app, db) { noteRoutes(app, db); // 新增根路径的GET请求处理 app.get('/', (req, res) => { res.send('Hello'); }); // 其他路由组可以在这里添加 };
修改后重启你的Node服务,再访问http://localhost:3000/就能看到Hello了。
情况2:你其实是想测试/notes接口(教程预期的是这个)
浏览器地址栏默认发送的是GET请求,而你的/notes接口是POST方法,所以直接访问会报错。你需要用POST请求工具来测试:
- 用
curl命令:curl -X POST http://localhost:3000/notes - 用Postman、Insomnia等可视化工具发送POST请求到该地址
这样就能得到预期的Hello响应了。
额外检查点
- 修改代码后一定要重启Node服务,Express不会自动检测代码变化并热重载(除非你用了
nodemon这类工具) - 确认请求的方法(GET/POST)和路径完全匹配Express路由的配置,Express的路由是严格匹配这两个维度的
内容的提问来源于stack exchange,提问作者IHaveAQuestion
相关产品推荐
相关产品推荐

