使用busboy

时间:2018-03-28 04:32:32

标签: node.js forms busboy

如何使用busboy从“val”参数中检索单个字段值?

的.js

app.post('/somewhere', (req, res) => {
    req.busboy.on('field', function(fieldname, val) {
       //var foo = val.name;
       //var bar = val.number;
    });
});

html的

<input type="text" name="name"><br>
<input type="tel" name="number"><br>

根据busboy git

  

field [...]为找到的每个新的非文件字段发出。

使用提供的示例,我能够识别'var'由两个字符串组成:

typeof(val) 

string
string

但在那之后我一无所知:

  1. 此范围内的val是多少?变种?阵列?别的什么?
  2. 我如何从val获取特定元素?就像'名字'字段一样。

1 个答案:

答案 0 :(得分:1)

Busboy处理事件,因此从表单中获取特定元素的正确方法是实现一个自己保存表单数据的结构。

&#13;
&#13;
app.post('/somewhere', (req, res) => {

  let formData = new Map();
  req.busboy.on('field', function(fieldname, val) {
    formData.set(fieldname, val);
  });

  req.busboy.on("finish", function() {

    console.log(formData) // Map { 'name' => 'hi', 'number' => '4' }
    // here you can do 
    formData.get('name') //  'hi'
    formData.get('number') //  '4'

    // any other logic with formData here

    res.end()
  });
});
&#13;
&#13;
&#13;

我不确定您对typeof val的意思,但在我的情况下val始终是一个简单的字符串

相关问题