如何用formidable解析出formdata中的数据
时间: 2024-05-08 17:17:17 浏览: 6
1. 安装formidable模块:在命令行中输入 npm install formidable。
2. 在需要解析formdata的文件中引入formidable模块:
```javascript
const formidable = require('formidable');
```
3. 创建一个formidable实例:
```javascript
const form = new formidable.IncomingForm();
```
4. 调用formidable的parse方法,将formdata解析成一个对象:
```javascript
form.parse(request, (err, fields, files) => {
// 解析完毕后的处理逻辑
});
```
其中,request为Node.js中的http模块中的request对象,fields为解析出来的普通表单字段(即非文件字段),files为解析出来的文件字段。
完整代码示例:
```javascript
const http = require('http');
const formidable = require('formidable');
http.createServer((request, response) => {
if (request.url === '/upload' && request.method.toLowerCase() === 'post') {
const form = new formidable.IncomingForm();
form.parse(request, (err, fields, files) => {
if (err) {
console.error(err);
} else {
console.log(fields); // 输出解析出来的普通表单字段
console.log(files); // 输出解析出来的文件字段
}
response.end();
});
} else {
response.writeHead(200, { 'Content-Type': 'text/html'});
response.end(`
<form action="/upload" method="post" enctype="multipart/form-data">
<input type="text" name="username" /><br />
<input type="file" name="avatar" /><br />
<button type="submit">提交</button>
</form>
`);
}
}).listen(8080);
```