鍍金池/ 問答/HTML/ node接收上傳的文件流只能接收一部分?

node接收上傳的文件流只能接收一部分?

問題描述

前端上傳excel文件,后端接收并處理文件

相關(guān)代碼

// 請(qǐng)把代碼文本粘貼到下方(請(qǐng)勿用圖片代替代碼)

async importMember() {
   
    const stream = await this.ctx.getFileStream();
    
    stream.on('data',() =>{
        //這里只執(zhí)行一次左右 有時(shí)候兩次 chunk加起來的大小也不對(duì)
    })
    
    stream.on('end',() =>{
        //這里不觸發(fā)
    })
   
    stream.on('error',()=>{
        //這里也不觸發(fā)
    })
  }

你期待的結(jié)果是什么?實(shí)際看到的錯(cuò)誤信息又是什么?

data事件應(yīng)該執(zhí)行完全,stream接收完成后應(yīng)該觸發(fā)end事件,即使有錯(cuò)誤,應(yīng)該觸發(fā)error事件。

找了一天 懷疑是環(huán)境問題,nginx那邊限制也打開了,還是沒用。。
請(qǐng)求大神幫忙解析

回答
編輯回答
萌面人

已經(jīng)解決了,問題讓人哭笑不得。

這里提醒后面可能遇到這個(gè)問題的人:

一定要保證streamnode端接收完成后才能在controller里返回值,不然會(huì)認(rèn)為該http訪問結(jié)束,從而導(dǎo)致上傳的文件流中途結(jié)束。

2017年2月13日 07:09