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

发布于 2022-09-07 20:54:03 字数 625 浏览 16 评论 0

问题描述

前端上传excel文件,后端接收并处理文件

相关代码

// 请把代码文本粘贴到下方(请勿用图片代替代码)

async importMember() {
   
    const stream = await this.ctx.getFileStream();
    
    stream.on('data',() =>{
        //这里只执行一次左右 有时候两次 chunk加起来的大小也不对
    })
    
    stream.on('end',() =>{
        //这里不触发
    })
   
    stream.on('error',()=>{
        //这里也不触发
    })
  }

你期待的结果是什么?实际看到的错误信息又是什么?

data事件应该执行完全,stream接收完成后应该触发end事件,即使有错误,应该触发error事件。

找了一天 怀疑是环境问题,nginx那边限制也打开了,还是没用。。
请求大神帮忙解析

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

佞臣 2022-09-14 20:54:03

已经解决了,问题让人哭笑不得。

这里提醒后面可能遇到这个问题的人:

一定要保证streamnode端接收完成后才能在controller里返回值,不然会认为该http访问结束,从而导致上传的文件流中途结束。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文