这可能不是nodejs的处理方式,但是我有一个带有文本字段(文件描述)和文件输入(要上传的文件)的表单。
然后我试图将该文档及其描述保存到我最喜欢的noSQL数据库中。
为此,我需要同时具有描述和表示文件的base64字符串,以便将它们都发送到noSQL数据库。
我不确定如何继续使用busboy,因为它基于所有事件并且流式传输数据。
这是我的HTML表单
<form id="form-documents"
action="/documents/save_document"
method="post"
encType="multipart/form-data">
<input type="file" id="btn-documents-form-file-browse" name="document" /><br>
Description :
<input type="text" id="document_description" /><br>
<input type="submit" value="Upload !" id="btn-documents-form-submit-button" /><br>
</form>
和我的nodeJS表达代码:
router.post('/save_document', (req, res, next) => {
let busboy = new Busboy({headers:req.headers});
busboy.on('file', function(fieldname, file, filename, encoding, mimetype) {
console.log('File [' + fieldname + ']: filename: ' + filename + ', encoding: ' + encoding + ', mimetype: ' + mimetype);
a = file.toString("base64")
file.on('data', function(data) {
console.log('File [' + fieldname + '] got ' + data.length + ' bytes');
});
file.on('end', function() {
console.log('File [' + fieldname + '] Finished');
});
});
busboy.on('field', function(fieldname, val, fieldnameTruncated, valTruncated, encoding, mimetype) {
console.log('Field [' + fieldname + ']: value: ' + inspect(val));
});
busboy.on('finish', function() {
console.log('Done parsing form!');
res.writeHead(303, { Connection: 'close', Location: '/' });
res.end();
});
req.pipe(busboy);
});
如何从文件中获取完整数据以及finish
解析的busboy
部分中的description字段?