2016-08-27 92 views
4

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

这是我如何配置它:

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

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

回答

0

好,因为快递-打杂不是为我工作,我尝试使用快递,文件上传,而不是这似乎现在的工作。

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

哦,我不知道这是该选项做了什么。无论如何,它似乎并没有为我工作,我只想为route/api/ccUpload启用busboy,所以我没有'allowedPath:'/^\/api/ccUpload $''。上传仍然有效,但它仍然打破我的其他邮政路线。我使用了正确的正则表达式吗? – chrispytoes

+0

您想要上传哪条路径? – owaishanif786

+0

/api/ccUpload是我想要busboy使用的唯一路线 – chrispytoes

0

尝试使用Multer代替,并限制你的路线:

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