Извлечение данных традиционной формы html на узловом сервере

#javascript #node.js #forms

#javascript #node.js #формы

Вопрос:

Динамическое создание формы и вызов отправки в форме, как показано ниже:

 const mapForm = document.createElement('form');
mapForm.setAttribute('id', 'export-file');
// mapForm.setAttribute('content-type','application/x-www-form-urlencoded'); - is it needed?
mapForm.target = '_blank';
mapForm.method = 'POST';
mapForm.action = '/export';
mapForm.acceptCharset = 'UTF-8';

const postData = {
  fileType: exportType,
  data: someJsonArray
}

let formData = [
  {
    name: 'postData',
    value: JSON.stringify(postData)
  }
]

formData.forEach(input => {
  const element = document.createElement('input');
  element.type = 'hidden';
  element.name = input.name;
  element.value = input.value;
  mapForm.appendChild(element);
});

document.body.appendChild(mapForm);
mapForm.submit();
 

На узловом сервере у меня есть эти:

 app.use('/export', bodyParser.urlencoded({extended:true}));
app.use('/export', exportAPI);
 

и exportAPI.js файл содержит следующее:

не вижу никаких данных, когда я регистрирую req.body.

 router.post('/',(req, res)  => {
    try {
        logger.info(req.body); -- DONT SEE ANY DATA IN THIS LINE
        //....
    } catch (err) {
        logger.error('error in export');
        //...
    }
});
 

Комментарии:

1. Что говорит вкладка «Сеть»?

2. вкладка «Сеть» не содержит ошибок или чего-либо еще

3. Я хочу спросить, какие данные он передает?

4. element.name = input.name ; — элемент ‘postData’.value = input.value; — ‘Stringified json objectvt’

5. Если вкладка «Сеть» содержит фактические данные, то сервер должен их получить

Ответ №1:

Действие формы указывает на «/ export», но промежуточное программное обеспечение вашего узла находится в «/ datacloud / orgbm / export». Таким образом, в основном узел не получает правильный запрос.

Можете ли вы изменить действие формы на ‘/ datacloud / orgbm / export’?

Комментарии:

1. Вы видите какой-либо регистратор router.post('/',(req, res) => { ?

2. Я вижу заголовки и все остальное в запросе, кроме значения, которое я передал в форме