在Node.js中parsingBuffer中的多部分/表单数据

我有一个缓冲区,我知道是一个multipart/form-data有效载荷,我也知道HTTP Content-Type头,其中包括边界。

有一些模块比如node-formidable只能在http请求stream上工作,所以我感兴趣的是如何同步分析一个多部分负载?

看看formidableform.parse()的源代码,你应该能够模仿大部分内部的事情。

另一个解决scheme可能是使用像busboy这样的东西给你一个普通的旧的分析器stream写入,所以你可能最终得到像这样的东西:

 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);