使用 busboy 从表单中获取字段值
Get field value from form with 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 [...] Emitted for each new non-file field found.
使用提供的示例,我能够确定 'var' 由两个字符串组成:
typeof(val)
string
string
但在那之后我就一无所知了:
- 此范围内的 val 是什么?变种?大批?还有别的吗?
- 如何从 val 访问特定元素?就像 'name' 字段。
Busboy 处理事件,因此从表单中获取特定元素的正确方法是自行实现一个保存表单数据的结构。
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()
});
});
我不确定 typeof val
是什么意思,但在我的例子中,val
始终是一个简单的 string
如何使用 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 [...] Emitted for each new non-file field found.
使用提供的示例,我能够确定 'var' 由两个字符串组成:
typeof(val)
string
string
但在那之后我就一无所知了:
- 此范围内的 val 是什么?变种?大批?还有别的吗?
- 如何从 val 访问特定元素?就像 'name' 字段。
Busboy 处理事件,因此从表单中获取特定元素的正确方法是自行实现一个保存表单数据的结构。
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()
});
});
我不确定 typeof val
是什么意思,但在我的例子中,val
始终是一个简单的 string