Данные всегда 'неопределены', когда вы отправляете данные формы через body-parser в node.js express - PullRequest
0 голосов
/ 01 июля 2019

Для ясности я сократил форму до следующего:

      <form method="post" action="/form" id="testform" enctype="application/x-www-form-urlencoded" name="testform" novalidate>
          <input type="text" class="form-control" id="name" >
          <button type="submit" class="btn btn-dark btn-lg">Generate XML</button>
      </form>

в моем основном js-файле у меня есть следующее:

var bodyParser = require('body-parser')

// create application/x-www-form-urlencoded parser
var urlencodedParser = bodyParser.urlencoded({ extended: true })

и я получаю данные (или нет, в зависимости от обстоятельств) здесь:

.post('/form', urlencodedParser, function (req, res) {
    res.send('welcome, ' + req.body.name)
    console.log(req.body)
  })

и все, что я получаю, это "добро, не определено", а журнал показывает пустой - {}

Это сводит меня с ума. Как мне проверить, что отправлено? Отладка это безумие!

Ответы [ 3 ]

4 голосов
/ 01 июля 2019

Я думаю, вам не хватает атрибута name в элементе <input>:

<input type="text" class="form-control" id="name"  name="name">

Вы уже установили id, но его можно использовать только для селекторов CSS (#name), ссылки (при посещении #name будет выбран этот вход) и <label> элементов (с использованием for="name").

1 голос
/ 01 июля 2019

Укажите для элемента ввода атрибут name как "name", и код будет работать нормально.

1 голос
/ 01 июля 2019

Элементы распознаются параметром name на стороне сервера.Вам необходимо добавить атрибут имени во входной тег.

...