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

nodejs/express/busboy - saving uploaded json data into database

我在用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')
        });

这里我如何读取文件,或者即使我需要更多步骤?

其实connect-busboy is a connect middleware for busboy.

您可以使用下面的示例代码,

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

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

希望对您有所帮助!