0x8*_*890 1 javascript node.js
我有一个Buffer,我知道它是一个multipart/form-data有效载荷,我也Content-Type提前知道HTTP 头,其中包括边界.
有一些模块,比如node-formidable只能在http请求流上运行,所以我感兴趣的是如何同步解析多部分有效负载?
看看formidables 的来源form.parse(),你应该能够模仿其内部所做的大部分工作.
另一个解决方案可能是使用类似的东西busboy给你一个普通的旧解析器流来写,所以你最终可能会得到类似的东西:
var Busboy = require('busboy');
var bb = new Busboy({ headers: { 'content-type': '....' } });
bb.on('file', function(fieldname, file, filename, encoding, mimetype) {
console.log('File [%s]: filename=%j; encoding=%j; mimetype=%j',
fieldname, filename, encoding, mimetype);
file.on('data', function(data) {
console.log('File [%s] got %d bytes', fieldname, data.length);
}).on('end', function() {
console.log('File [%s] Finished', fieldname);
});
}).on('field', function(fieldname, val) {
console.log('Field [%s]: value: %j', fieldname, val);
}).on('finish', function() {
console.log('Done parsing form!');
});
bb.end(someBuffer);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4214 次 |
| 最近记录: |