`
router.post("/login", (req, res) => {
console.info(req.body.username)
console.info(req.body.password)
res.redirect("/")
})
<body>
<form action = "/register" method = "post">
<label for = "username">
</label>
<input type = "text" name = "username" placeholder = "Username" id = "username" required>
<label for = "password">
<i class = "fas fa-lock"></i>
</label>
<input type = "password" name = "password" placeholder = "Password" id = "password" required>
<input type = "submit" value = "Login">
</form>
</body>
`
Я только начал изучать экспресс, но уже есть проблема, и я не могу найти никаких решений. Почему-то в сообщении переменная req.body не определена. Это будет система авторизации. (Извините за мой плохой английский)
Сначала я попытался сделать это, как здесь, на github: https://github.com/WebDevSimplified/express-crash-course , но у меня все еще была ошибка «TypeError: Cannot read properties of undefined» в моей консоли. Поэтому я искал что-то еще и нашел это: https://codeshack.io/basic-login-system-nodejs-express-mysql/ Мой код основан на примере codehack, но я все еще получаю сообщение об ошибке.
Добавьте промежуточное ПО перед вашими обработчиками
app.use (bodyParser.urlencoded ({расширенный: ложь}))
bodyParser
устарела
Устарел только конструктор, который он не использует. См. stackoverflow.com/a/24330353/7075674
Если вы хотите получить доступ к телу почтового запроса, нам нужно использовать экспресс-промежуточное ПО, которое будет анализировать тело запроса и прикреплять его к объекту req.body
.
Для этого мы можем использовать express.urlencoded()
промежуточное ПО.
для получения дополнительной информации ссылка
router.post("/login",express.urlencoded({ extended: true }) , (req, res) => {
console.info(req.body.username)
console.info(req.body.password)
res.redirect("/")
})
Вы добавили эту строку в начале своего приложения?
app.use(express.urlencoded({extended: true}));