nodejs / express / busboy - 将上传的json数据保存到数据库中

时间:2017-11-15 14:05:00

标签: node.js express busboy

我正在使用bodyboy https://github.com/mscdex/connect-busboy 上传功能。基本上我不需要保存文件,它只是用户上传文件,我想将其保存到我的数据库中。

所以准确地说,如果有人能告诉我如何控制上传文件的内容

req.busboy.on('file', function(fieldname, file, filename, encoding, mimetype) {
            console.log(fieldname)
            console.log(file)
            console.log(filename)
            console.log('readin file')
        });

在这里我怎样才能阅读文件,或者即使我需要更多步骤?

1 个答案:

答案 0 :(得分:0)

实际上connect-busboybusboy的连接中间件。

您可以使用以下示例代码

    req.busboy.on('file', function(fieldname, file, filename, encoding, mimetype) {
          console.log('File [' + fieldname + ']: filename: ' + filename + ', encoding: ' + encoding + ', mimetype: ' + mimetype);
          file.on('data', function(data) {
            console.log('File [' + fieldname + '] got ' + data.length + ' bytes');
          });
          file.on('end', function() {
            console.log('File [' + fieldname + '] Finished');
          });
    });

如果您想阅读自己的信息流,那么您需要使用自己的信息流,或者请尝试使用以下方式

   req.busboy.on('file', function(fieldname, file, filename, encoding, mimetype) {
               var buffer = '';
               console.log('File [' + fieldname + ']: filename: ' + filename + ', encoding: ' + encoding + ', mimetype: ' + mimetype);
               file.on('data', function(data) {
                  buffer += data;
                 console.log('File [' + fieldname + '] got ' + data.length + ' bytes');
               });
               file.on('end', function() {
                 console.log('File [' + fieldname + '] Finished');
                 var val = JSON.parse(buffer);
                // use `val` here ...
               }).setEncoding('utf8');
         });

请确保您在请求中使用了正确的标题,否则请将示例测试用例代码检查到here

希望这会对你有帮助!