2016-08-27 137 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 
); 
相關問題