Node的querystring模块可以解析请求主体
假如用户通过HTML表单向代办事项列表中提交了文本“take ferrets to the vet"
var qs = require('querystring')
var body = 'item=take+ferrets+to+the+vet'
qs.parse(body)
{ item: 'take ferrets to the vet' }
用formidable处理上传的文件
在web开发中,文件上传也是一个非常常见、非常重要的功能。
下面一个例子
<form method='post' action='/' enctype='multipart/form-data'>
<p><input type='text' name='name' /></p>
<p><input type='flie' name='file' /></p>
<p><input type='submit' value='Upload' /></p>
</form>
要正确处理上传的文件,并接收到文件的内容,需要把表单的enctype属性设为multipart/form-data,这是个适用与BLOB(大型二进制文件)的MIME类型。
formidable的流式解析器让它成为了处理文件上传的绝佳选择,也就是说它能随着数据块的上传接收它们,解析它们,并吐出特定的部分。
计算上传进度
Formidable的progress事件能给出收到的字节数和期望收到的字节数。每次有progress事件激发,就会计算百分比并用console.log()输出
form.on('progress', function(bytesReceived, bytesExpected){
var percent = Math.floor(bytesReceived, bytesExpected * 100)
console.log(percent)
})
这段脚本会输出
1
2
3
···
99
100