我使用存储库here中的示例使用express-busboy设置文件上传
它似乎没有使用正常的use()
语法,因此我对如何实际限制此中间件感到困惑,因此它只在特定路由上执行,因为它打破了其他POST请求。
这就是我配置它的方式:
var busboy = require('express-busboy');
busboy.extend(app, {
upload: true,
path: './uploads/temp'
});
答案 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
);