我是Node.js的新手,我使用没有框架的Node.js(无表达),我想深入学习纯Node.js。
我当前的代码。
const { headers, method, url } = req;
let body = [];
req.on('error', (err) => {
console.error(err);
}).on('data', (chunk) => {
body.push(chunk);
}).on('end', () => {
console.log(body)
body = Buffer.concat(body).toString();
console.log(body)
res.writeHead(200, {'Content-Type': 'text/html\; charset=utf-8'});
res.write(body)
res.end()
});
响应
------WebKitFormBoundaryAExpj6oapW6tzLe8
Content-Disposition: form-data; name="field-one"
Test value of field one
------WebKitFormBoundaryAExpj6oapW6tzLe8
Content-Disposition: form-data; name="field-two"
Test value of field-two
------WebKitFormBoundaryAExpj6oapW6tzLe8--
在此测试示例中,字段1的值为Test value of field one
,字段2的值为Test value of field two
如何通过字段名称获取此字段的值?
可以接受NPM模块,谢谢。
答案 0 :(得分:1)
可以接受NPM模块,谢谢。
您可以使用parse-formdata软件包。
const parseFormdata = require('parse-formdata')
const http = require('http')
http.createServer((req, res) => {
parseFormdata(req, (err, data) => {
if (err) {
// Set whatever status code you want
return res.end('Error...');
}
console.log('fields:', data.fields)
data.parts.forEach(function(part) {
console.log('part:', part.fieldname)
});
res.writeHead(200, {
'Content-Type': 'text/html\; charset=utf-8'
});
res.end();
});
}).listen(8080)
如果您想学习自己解析表单数据,可以阅读该程序包的代码。