Я пытаюсь написать страницу входа. я получил HTML-страницу с окном входа
Я ввожу адрес электронной почты и пароль, затем отправляю на сервер, на сервере я получил маршрут, который проверяет данные на БД, если документ существует, если он существует, следует перенаправить на главную страницу.
проблема в том, что данные, которые я посылаю из формы на сервер, всегда неопределены. Я проверяю здесь другие вопросы о госзакупках, и я не нашел хорошего результата для этого
html страница входа:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<link rel="stylesheet" type="text/css" href="/css/style.css" />
<title>{{PageTitle}}</title>
</head>
<body>
{{> header}}
<div class="login-box">
<div class="form">
<form action="/get_user" method="post" class="login-form">
<input type="email" name="Email" placeholder="Email"/>
<input type="password" name="Password" placeholder="Password"/>
<button type="submit">login</button>
</form>
</div>
</div>
{{> footer}}
</body>
код сервера:
const _ = require('lodash');
const express = require('express');
const bodyParser = require('body-parser');
const {mongoose} = require('./db/mongoose');
const hbs = require('hbs');
var {User} = require('./models/user');
var app = express();
app.set('view engine', 'hbs');
const port = process.env.PORT;
hbs.registerPartials(__dirname + '/../views/partials');
app.user(bodyParser.json());
app.use(express.static(__dirname + '/../public'));
app.use(express.static(__dirname + '/../public/images'));
app.use(express.static(__dirname + '/../public/fonts'));
app.listen(port, () => {
console.log(`Started on port ${port}`);
});
app.get('/', (req, res) => {
res.render('login.hbs', {
PageTitle: 'Log In',
ConnectUser: 'Guest'
});
});
app.post('/get_user', (req, res) => {
var body = _.pick(req.body, ['Email , 'Password']);
User.findOne({
Email: body.Email,
Password: body.Password
}).then((user) => {
console.log(body.Email + ' ' + body.Password);
if(!user) {
return res.status(404).send();
}
var fullName = user.First_Name + ' ' + user.Last_Name;
res.redirect('/mainPage', {ConnectUser: fullName});
}).catch((e) => {
res.status(400).send();
});
});
я сделал несколько проверок и когда я вызываю / get_user req.body-> var body -> user r empty
передача данных от формы к серверу. Я также проверяю этот маршрут на почтальоне, и его работа находит, когда я сам пишу тело, единственная проблема, о которой я могу думать, это данные, которые я посылаю из формы, отправка в виде json, а анализатор тела - только в формат json, так что, возможно, мне нужно изменить строку
app.use (bodyParser.json ());
если кто-нибудь 1 может поставить в правильном направлении, я плохо оцениваю этого.