Не получить данные из формы Pug JS в NodeJs - PullRequest
0 голосов
/ 09 марта 2020

Я пытаюсь добавить форму аутентификации, в которой пользователи вводят свои учетные данные, и, если их учетные данные верны, я хочу перенаправить их на маршрут. Итак, я создал промежуточное ПО login. js, которое отображает шаблон мопса и отправляет запрос на отправку формы. Метод post работает, но я не получаю значения формы pug в req.body. Что я делаю?

Вот файл admingLogin.pug

doctype html
html(lang='en')
  head
    meta(charset='UTF-8')
    meta(name='viewport', content='width=device-width, initial-scale=1.0')
    meta(http-equiv='X-UA-Compatible', content='ie=edge')
    link(rel='icon', href='../client/assets/favicon/login.ico', type='image/x-icon')
    link(rel='stylesheet', href='https://cdn.jsdelivr.net/npm/semantic-ui@2.4.2/dist/semantic.min.css')
    title Admin
  body
    .ui.middle.aligned.center.aligned.grid
      .column
        form.ui.large.form(action='/auth' method='post')
          .ui.stacked.secondary.segment
            .field
              .ui.left.icon.input
                p Log-in as an admin to create custom links
            .field
              .ui.left.icon.input
                i.user.icon
                input(type='text', name='username', placeholder='Username')
            .field
              .ui.left.icon.input
                i.lock.icon
                input(type='password', name='password', placeholder='Password')
            button(type="submit").ui.fluid.large.teal.submit.button Login
          .ui.error.message
    style.
      body>.grid {
      height: 100% !important;
      }
      .image {
      margin-top: -100px !important;
      }
      .column {
      max-width: 450px !important;
      margin-left: 55px !important;
      margin-right: 55px !important;
      }
      body {
      background: #30E8BF;
      background: -webkit-linear-gradient(to right, #FF8235, #30E8BF);
      background: linear-gradient(to right, #FF8235, #30E8BF);
      }

Вот ссылка на весь проект, а ссылка на маршрут здесь . Промежуточное программное обеспечение передается здесь .

1 Ответ

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

POST от вашего HTML отправляется как application/x-www-form-urlencoded. Вам нужно настроить body-parser для обработки такого типа.

В настоящее время, на основе добавленного вами кода, он способен обрабатывать только application/json.

Попробуйте добавить следующую строку ниже app.use(bodyParser.json());

app.use(bodyParser.urlencoded({ extended: true }));
...