POST-запрос - не работает с Node и Express - PullRequest
0 голосов
/ 31 марта 2020

Я только начал изучать Node и Express для простого проекта, но по какой-то причине я не могу заставить POST работать. Мой браузер выдает ошибку: Cannot 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)

Ответы [ 2 ]

1 голос
/ 31 марта 2020

Для маршрута "/" у 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>
  `)
})
0 голосов
/ 31 марта 2020

Вы попали в неверную конечную точку. Вы должны публиковать, например, http://localhost: 3000 / answer .

И еще одна вещь, если вы хотите передать JSON данные в теле, вам нужно использовать промежуточное программное обеспечение анализатора тела. https://www.npmjs.com/package/body-parser

...