限制快递到特定路线

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了限制快递到特定路线相关的知识,希望对你有一定的参考价值。

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

这是我配置它的方式:

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

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

在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);
另一答案

好吧,因为快递busboy不适合我,我尝试使用express-fileupload而现在似乎工作。

另一答案

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

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

以上是关于限制快递到特定路线的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 为特定路线设置最大上传大小限制?

蓝鸟承诺在快递路线解决

使用带护照和快递的可选授权路线

Vijos 包裹快递(二分)

Vijos1450 包裹快递[二分答案]

包裹快递 题解