2016-08-27 7 views
4

Я установил загрузку файлов с помощью экспресс-Busboy, используя пример из репозитория here , который, похоже, не использует обычный синтаксис use(), поэтому я немного смущен относительно того, как на самом деле ограничьте это промежуточное программное обеспечение, чтобы он выполнялся только по определенному маршруту, потому что он нарушает другие запросы POST.Ограниченный экспресс-автобус по определенным маршрутам

Это, как я настроил его:

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

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

ответ

0

Ну так как экспресс-помощник официанта не работает для меня, я попытался с помощью экспресс-FileUpload вместо этого и что, кажется, работает в настоящее время.

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

О, я не понял, что это то, что этот вариант сделал. В любом случае, это не работает для меня, я только хочу включить busboy для маршрута/api/ccUpload, поэтому я сделал 'allowedPath: '/^\/api/ccUpload $''. Загрузка по-прежнему работает, но она по-прежнему нарушает мои другие маршруты POST. Я использовал правильное регулярное выражение? – 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 
); 
Смежные вопросы