Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js Nodejs从所选字段请求名称以外的其他属性_Node.js_Express - Fatal编程技术网

Node.js Nodejs从所选字段请求名称以外的其他属性

Node.js Nodejs从所选字段请求名称以外的其他属性,node.js,express,Node.js,Express,我是Nodejs和express的新手,我正在尝试将输入字段中的多个值添加到数据库中 这是我的表格: form(method='post',action='/form',enctype='multipart/form-data') .form-check label First Question input.form-check-input(name='first', type='radio', id="radio1", value="3" data="option1")

我是Nodejs和express的新手,我正在尝试将输入字段中的多个值添加到数据库中

这是我的表格:

form(method='post',action='/form',enctype='multipart/form-data')
.form-check
    label First Question 
    input.form-check-input(name='first', type='radio', id="radio1", value="3" data="option1")
    label.form-check-label(for="radio1") 1
    input.form-check-input(name='first', type='radio', id="radio2", value="10" data="option2")
    label.form-check-label(for="radio2") 2
    input.form-check-input(name='first', type='radio', id="radio3", value="5" data="option3")
    label.form-check-label(for="radio3") 3
    input.form-check-input(name='first', type='radio', id="radio4", value="7" data="option4")
    label.form-check-label(for="radio4") 4
在路由器文件中,我可以使用
req.body.first
成功捕获所选输入无线电的值,但我也想获取数据信息,将其与值一起存储在数据库中,类似于
req.body.first.data


如何执行此操作?

您可以在提交前向表单数据添加
数据

index.pug

script(src='https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js')

form(action='/form',method='post')
    label First Question
    input.form-check-input(name='first', type='radio', id="radio1", value="3" data="option1")
    label.form-check-label(for="radio1") 1
    input.form-check-input(name='first', type='radio', id="radio2", value="10" data="option2")
    label.form-check-label(for="radio2") 2
    input.form-check-input(name='first', type='radio', id="radio3", value="5" data="option3")
    label.form-check-label(for="radio3") 3
    input.form-check-input(name='first', type='radio', id="radio4", value="7" data="option4")
    label.form-check-label(for="radio4") 4
    input(type='submit', value='Submit')

    script.
      $(document).ready(function () {
        $('form').submit(function (e) {
          var $selectedEle = $('input[name=first]:checked');
          var data = {
            data: $selectedEle.attr('data')
          };
          data[$selectedEle.attr('name')] = $selectedEle.attr("value");

          $.post({
            type: "POST",
            url: '/form',
            data: JSON.stringify(data),
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: function (res) {
              console.log('res from server', res);
            }
          });

          return false;// prevent default form submit

        });
      })
app.js

app.get('/form', function (req, res) {
  return res.render('o'); // your pug file
}).post('/form', function (req, res) {

  let formData = req.body;
  console.log('name', formData.first);
  console.log('data', formData.data);

  return res.status(200).send(formData);
});

谢谢,这很有效。我花了很多时间试图弄明白这一点,我想我可以从后端访问它,而不需要在前端添加任何额外的代码。谢谢