簡體   English   中英

如何在NodeJS中處理未定義的上傳

[英]How to handle undefined upload in NodeJS

我使用BusBoy插件來處理文件上傳。 它為事件“文件”注冊了一個處理程序,該事件在文件完全上傳后發生,然后處理程序將進行下一個操作。 但是,當未定義上傳文件時,將注冊事件處理程序,但事件“文件”將永遠不會發生。 處理將需要一段時間才能停止處理此請求。 當我繼續這樣做超過五次時,節點進程將停止幾分鍾,幾分鍾后它將恢復正常。

那我該如何在NodeJS流程中處理這種情況呢? 不要告訴我永遠不要上傳未定義的文件,當文件上傳失敗時,我認為這種情況也會發生。

您可以使用“完成”事件來停止處理

busboy.on('finish', function() {
 //your code to stop processing
});

當上載(表單)數據中的所有文件/字段事件均已觸發時,將觸發此“完成”事件。 (如果未定義文件/字段,則忽略觸發器)。

進一步建議你的情況來復檢, pipe你的節點request通過busboy

req.pipe(busboy);

我已經通過這個解決了這個問題。 為“文件”事件設置一個變量標志,當事件發生時,該標志將在其處理程序中設置為true。 由於“文件”事件在req.end事件之前發生,因此我為req的結束事件注冊了一個處理程序。

req.on('end',function(){
    if(!flag){
         res.json({
            ....        
         });
    }

});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM