4

我使用此处存储库中的示例使用 express-busboy 设置文件上传, 这似乎没有使用正常use()语法,所以我对如何实际限制这个中间件有点困惑,所以它只在特定路线上执行,因为它破坏了其他 POST 请求。

这就是我配置它的方式:

var busboy = require('express-busboy');

busboy.extend(app, {
    upload: true,
    path: './uploads/temp'
});
4

3 回答 3

0

尝试改用Multer,并将其限制在您的路线中:

app.post('/^\/api\/ccUpload$/',
  multer({
    dest: './uploads/temp',
    rename: function(fieldname, filename, req, res) {
      return filename.toLowerCase();
    }
  }),
  yourRouteHandler
);
于 2016-08-28T10:38:37.353 回答
0

在 allowedPath 值中,您可以在这种情况下指定正则表达式限制在快速应用程序中定义的发布路由。喜欢/上传

busboy.extend(app, {
    upload: true,
    path: './uploads/temp',
    allowedPath: /^\/uploads$/

});

或者其他明智的你可以传递函数

var options = {
        upload: true,
        path: './uploads/temp',


    };
options.allowedPath = function(url) {
    return url == '/api/ccUpload';
}

    busboy.extend(app, options);
于 2016-08-27T23:27:13.197 回答
0

好吧,因为 express-busboy 不适合我,所以我尝试使用 express-fileupload 来代替,现在似乎可以了。

于 2016-08-28T01:17:40.753 回答