我刚刚开始为一个简单的项目学习Node and Express,但是由于某种原因,我无法使POST正常工作。我的浏览器给我一个错误:无法发布/
感谢您提供有关此问题的任何帮助。谢谢。
我的代码在下面:
let express = require("express")
let ourApp = express()
ourApp.use(express.urlencoded({ extended: false }))
ourApp.get("/", function(req, res) {
res.send(`
<form action='/' method='POST'>
<h2>What color is the sky on a clear and sunny day?</h2>
<input name="skyColor" autocomplete="off">
<button>Submit Answer</button>
</form>
`)
})
ourApp.post("/answer", function(req, res) {
if (req.body.skyColor.toUpperCase() == "BLUE") {
res.send(`
<p>Congrats, that is the correct answer.</p>
<a href="/">Back to homepage</a>
`)
} else {
res.send(`
<p>Sorry, that is incorrect.</p>
<a href="/">Back to homepage</a>
`)
}
})
ourApp.get("/answer", function(req, res) {
res.send("Are you lost there is nothing to see here.")
})
ourApp.listen(3000)
对于"/"
路线,您返回的form
应该具有action="/answer"
,而不是action="/"
您的其他路线应保持不变,并且肯定可以使用。
ourApp.get("/", function(req, res) {
res.send(`
<form action='/answer' method='POST'>
<h2>What color is the sky on a clear and sunny day?</h2>
<input name="skyColor" autocomplete="off">
<button>Submit Answer</button>
</form>
`)
})
您碰到了错误的端点。您应该发布到例如http://localhost:3000/answer。
还有另外一件事,如果您想在主体中传递JSON数据,则需要使用主体解析器中间件。https://www.npmjs.com/package/body-parser