В NodeJS express;Как я могу получить свойства формы из сообщения формы? - PullRequest
0 голосов
/ 04 октября 2019

узел -v v10.15.0

У меня есть несколько стандартных форм на странице, загруженной через AJAX (поэтому я не знаю, сколько и откуда). У каждого есть имя формы.

Я хочу получить атрибуты формы, но они не возвращаются в переменной req.body.

В следующем примере я хочу получить доступ к имени формы как form1,Я посмотрел на объект req, но не могу найти описание отправленной формы.

Как я могу получить такие атрибуты формы, как имя, метод и действие? Нужно ли что-то делать со встроенным парсером тела?

Пример:

<form method='post' name='form1'>
       <input type='submit'>
</form>

На стороне экспресс-узла у меня есть следующее:

app.post('/', function(req, res, next)
{
    console.log(req.body);
    process.exit(1);
});

Консоль показывает {}

Не думаю, что это повторный вопрос. Потратил около часа на поиски этого ответа.

1 Ответ

0 голосов
/ 04 октября 2019

Как я могу получить атрибуты формы, такие как имя, метод и действие? Нужно ли что-то делать со встроенным анализатором тела?

Нет, только элементы формы, предназначенные для хранения данных в форме, автоматически отправляются вместе с отправкой формы. Атрибуты родительского элемента form, такие как name и action, не отправляются.

Трюк, который часто используется в формах для вставки скрытого элемента в форму (тот, который делает пользовательне видят) и помещают данные в тот элемент, который вы хотите отправить на сервер. Затем сервер может получить доступ к данным, как и любой другой именованный элемент формы. Вы можете либо заполнить эти элементы при первоначальной разработке формы, либо динамически заполнить их Javascript в любое время до отправки формы.

Например:

 <form method='post' name='form1' action="/form1Submit">
    <input type="hidden" name="action" value="post">
    <input type="hidden" name="formName" value="form1">
    Enter your data here: <input name="data">
    <input type='submit'>
 </form>

Предполагая, что у вас естьпромежуточное ПО body-parser настроено соответствующим образом, и после отправки этой формы вы сможете получить доступ к req.body.action и req.body.formName и req.body.data на вашем экспресс-сервере.

...