Express.js发送POST请求时出现Cannot GET /create错误求助
问题诊断与修复方案
你的代码存在三个核心问题,直接导致了Cannot GET /create错误以及响应不符合预期的情况:
路由路径不匹配
代码里注册的路由是/create1,但你实际访问的是/create,路径名称多了一个1,服务器找不到对应的处理逻辑。请求方法不匹配
你用app.post()定义的是POST请求的处理路由,但浏览器地址栏直接访问默认发送的是GET请求,服务器没有注册/create的GET路由,因此返回Cannot GET /create。响应内容不符
代码中resp.send("done")返回的是done,但你期望得到send,响应文本和预期不一致。
修改后的代码(GET请求场景,适配浏览器直接访问):
const express = require("express") const app = express() // 注册GET请求的/create路由,返回期望的"send" app.get("/create", (req, resp) => { console.log("request received") resp.send("send") }) app.listen(3000, () => { console.log("server running on port 3000") })
如果确实需要使用POST方法(比如处理表单或接口请求),需要用Postman、curl等工具发送POST请求到http://localhost:3000/create,同时调整代码如下:
const express = require("express") const app = express() // 解析JSON格式的请求体(如果需要处理POST参数) app.use(express.json()) app.post("/create", (req, resp) => { console.log("POST request received") resp.send("send") }) app.listen(3000, () => { console.log("server running on port 3000") })
内容的提问来源于stack exchange,提问作者Rohit Nandagawali
相关产品推荐
相关产品推荐

