【问题标题】:Node.js Busboy parse fields and files seperatlyNode.js Busboy 分别解析字段和文件
【发布时间】:2014-04-15 16:21:51
【问题描述】:

我想知道是否可以让 Busboy 分别解析字段和文件。 (我已经删除了bodyParser,因为你可以很容易地用临时文件填充硬盘。)

例如 - 解析器发布字段的中间件(用于所有 POST 请求)

if (req.method === 'POST') {
    var form = new busboy({ headers: req.headers, limit: { files: 0 } });

    form.on('field', function (fieldname, val, valTruncated, keyTruncated) {
        req.params.body[fieldname] = val;
    });
    form.on('finish', function () {
        next();
    });
    return req.pipe(form);

} else { next(); }

然后在上传页面上使用以下内容,它使用 Busboy 来获取发布的文件。

app.post('/fm/file/upload/:folder', function (req, res) {
    var isFrame = helpers.toBool(req.param('frame'), false),
        uploadService = fmUploadService.create(),
        userId = res.locals.info.User.Id,
        folder = helpers.toInt(req.param('folder', 0));

uploadService.processUploads(userId, folder, req, res, function (uploadError, allowedAccess, files) {
        if (uploadError) {
            if (req.xhr) {
                res.status(500);
                res.json(uploadError);
            } else {
                res.render('filemanager/file_upload.jade', { actionUrl: '/fm/file/upload/' + folder, tempData: files, isFrame: isFrame, err: uploadError });
            }
            return;
        }
        else if (req.xhr) {
            res.status(200);
            res.json(files);
            return;
        }
        res.render('filemanager/file_upload.jade', { actionUrl: '/fm/file/upload/' + folder, tempData: files, isFrame: isFrame, err: null });
    });
});

目前文件将始终为 0,因为 Busboy 已在中间件中运行。

【问题讨论】:

  • 您找到解决方案了吗?我有同样的用例,想在我的模型中解析文件,但是在到达路由之前将字段作为中间件来填充 req.body。
  • 我正在为此寻找解决方案。有更新吗?
  • 我不确定我是否正确理解了这个问题,但在 Express 4 中,Multer 单独处理文件上传。

标签: javascript node.js express upload


【解决方案1】:

代替

form.on('finish', function () {
    next();
});`

尝试一下

form.on('end', function () {
    next();
});`   

【讨论】:

    猜你喜欢
    • 2019-12-31
    • 2019-02-01
    • 1970-01-01
    • 2020-04-05
    • 2020-04-07
    • 2017-06-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多