限制快递到特定路线

时间:2016-08-27 22:33:42

标签: node.js express file-upload middleware busboy

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

这就是我配置它的方式:

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

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

3 个答案:

答案 0 :(得分:0)

在allowedPath值中,您可以在明确应用程序中定义的post route上指定此案例限制中的正则表达式。喜欢/上传

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

答案 1 :(得分:0)

好了,因为express-busboy不能为我工作,我尝试使用express-fileupload,而这似乎现在有效。

答案 2 :(得分:0)

请尝试使用Multer,并将其限制为您的路线:

app.post('/^\/api\/ccUpload$/',
  multer({
    dest: './uploads/temp',
    rename: function(fieldname, filename, req, res) {
      return filename.toLowerCase();
    }
  }),
  yourRouteHandler
);