向/api/notes/addnote发送POST请求返回404错误的排查求助
解决Express POST /api/notes/addnote返回404的问题
问题根源
你的路由配置存在路径重复问题:
- 在
main.js中,你将notes路由挂载到了/api/notes/addnote路径 - 而在notes路由文件内,又定义了
/addnote的POST端点 - 这导致实际生效的端点路径为
http://localhost:3000/api/notes/addnote/addnote,但你请求的是/api/notes/addnote,因此返回404错误。
修复步骤
修改main.js中的路由挂载代码,将挂载路径调整为/api/notes:
// main.js const connectToMongo = require('./Db'); const express = require('express'); connectToMongo(); const app = express() const port = 3000 app.use(express.json()); // 修正此处的挂载路径 app.use('/api/notes', require('./Routes/notes')); app.listen(port, () => { console.log(`Example app listening on port ${port}`) })
修改后,notes路由里的/addnote端点会与挂载路径组合成正确的/api/notes/addnote,和你请求的URL完全匹配。
额外验证建议
- 重启服务器确保代码修改生效
- 可临时添加测试路由验证挂载是否正常:
// 在main.js中添加 app.get('/api/notes/test', (req, res) => { res.send('Test endpoint is accessible'); });
若能正常访问http://localhost:3000/api/notes/test,说明路由挂载配置无误。
内容的提问来源于stack exchange,提问作者Aaron Tauro
相关产品推荐
相关产品推荐

