javascript - 文件上传时解析文件内容

标签 javascript json node.js express busboy

我想知道是否有人知道如何在使用express/nodejs时从上传的文件中提取文件内容

我有以下代码,很清楚如何将输入通过管道传输到文件流,但如何将上传反序列化为纯 JavaScript 对象?目的是从上传的文件中提取信息并在其他地方使用它。理想情况下,我不想通过磁盘上的临时文件。文件格式为json。

app.post("/upload", function(req, res){

    req.pipe(req.busboy);

    req.busboy.on('file', function (fieldname, file, filename) {

        console.log("Uploading: " + filename);
        console.log(file);
        console.log(fieldname);

        // I don't want to go via a file, but straight to a JS object


        //fstream = fs.createWriteStream('/files/' + filename);
        //
        //file.pipe(fstream);
        //
        //fstream.on('close', function () {
        //
        //    res.redirect('back');
        //
        //});
    });
});

文件上传触发如下:

var formData = new FormData($('form')[0]);

        e.preventDefault();

        $.ajax({
            url: 'upload',
            type: 'POST',
            data: formData,
            cache: false,
            dataType:'json',
            contentType: false,
            enctype: 'multipart/form-data',
            processData: false,
            success: function (response) {
            }
        });

最佳答案

如果您不介意先缓冲文件内容,您可以执行以下操作:

app.post("/upload", function(req, res){
  req.pipe(req.busboy);
  req.busboy.on('file', function (fieldname, file, filename) {
    var buf = '';
    file.on('data', function(d) {
      buf += d;
    }).on('end', function() {
      var val = JSON.parse(buf);
      // use `val` here ...
    }).setEncoding('utf8');
  });
});

关于javascript - 文件上传时解析文件内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28400136/

相关文章:

javascript - 如何在 sails.js 中迁移数据库?

javascript - React 表单如何根据打开/关闭切换来获取用户数据

javascript - 更新 setTimeout 问题中的 JSON 对象

javascript - 使用 json_encode 从 php 到 javascript 的数据传输

javascript - 'ng new my-app' 错误

javascript - Sails JS Passport http 401

javascript - 安装socket.io返回(node-gyp重建2> builderror.log)|| (0号导出)

javascript - JQuery Datepicker 删除已填充的日期字段

javascript - 随着时间的推移滞后问题javascript

javascript - 如何使用循环提取数组中的json数据?