express -validator не получает значений - PullRequest
0 голосов
/ 13 апреля 2020

Я использую express -validator в приложении узла. Все 4 поля формы возвращают ошибки проверки («Требуется имя» и т. Д.). Когда я console.log переменная ошибки, все значения пустые:

errors: [{value: '', msg: 'A name is required.', param: 'name', location: 'body'},...

Форма обратной связи:

 <form class="feedback-form" method="POST" action="/feedback">
          <div class="form-group">
            <label for="feedback-form-name">Name</label>
            <input
              type="text"
              class="form-control"
              id="feedback-form-name"
              name="name"
              placeholder="Enter your name"
            />
          </div>
          <div class="form-group">
            <label for="feedback-form-email">E-Mail</label>
            <input
              type="text"
              class="form-control"
              id="feedback-form-email"
              name="email"
              placeholder="Enter your email address"
            />
          </div>
          <div class="form-group">
            <label for="feedback-form-title">Title</label>
            <input
              type="text"
              class="form-control"
              id="feedback-form-title"
              name="title"
              placeholder="Title of your feedback"
            />
          </div>
          <div class="form-group">
            <label for="feedback-form-message">Message</label>
            <textarea
              type="text"
              placeholder="Enter your message, then hit the submit button"
              class="form-control"
              name="message"
              id="feedback-form-message"
              rows="6"
            ></textarea>
          </div>
          <button type="submit" class="btn btn-secondary float-right">Submit</button>
        </form>

И мой маршрутизатор:

router.post(
    "/",
    [
      check("name").trim().isLength({ min: 3 }).escape().withMessage("A name is required."),
      check("email").trim().isEmail().normalizeEmail().withMessage("A valid e-mail is required."),
      check("title").trim().isLength({ min: 3 }).withMessage("A valid title is required."),
      check("message").trim().isLength({ min: 3 }).withMessage("A valid message is required."),
    ],
    (request, response) => {
      const errors = validationResult(request);
      console.log(errors);
      if (!errors.isEmpty()) {
        request.session.feedback = {
          errors: errors.array(),
        };

        return response.redirect("/feedback");
      }
      return response.send("Feedback form posted");
    }
  );
  return router;

Почему значения форм не передаются методу post маршрутизатора?

1 Ответ

0 голосов
/ 13 апреля 2020

Вам необходимо получить доступ к полям формы в request.body, за которыми следует их соответствующее имя, как описано в ЭТОМ сообщении.

...