当前位置: 首页 > 后端技术 > Node.js

Nodejs大文件流式下载服务

时间:2023-04-03 19:19:33 Node.js

通过Nodejs实现大文件流下载功能1.使用TypeScript2。使用swc进行代码翻译3。使用ES6模块导入机制4。;从“exceljs”导入ExcelJS;@MRoute('/api/file')asyncgetExcel(req:any,res:any){constoptions={stream:res,//如果这里没有配置,需要使用workbook.stream.pipe(res);写入res流useStyles:true,useSharedStrings:true};constworkbook=newExcelJS.stream.xlsx.WorkbookWriter(选项);constworksheet=workbook.addWorksheet('dataflow',{views:[{state:'frozen',xSplit:1,ySplit:3}]});letfilename="数据流表";res.setHeader('Connection','keep-alive');//保持连接Inres.setHeader('Content-Type','application/octet-stream');//文件类型为文件流res.setHeader("Content-Disposition","attachment;filename="+encodeURIComponent(filename)+".xlsx");res.flushHeaders();//首先返回标题//@ts-ignore//workbook.stream.pipe(资源);//使用管道流将xlsx流数据直接写入响应流for(letindex=0;index<1000000;index++){constrow=[];for(leti=0;i<20;i++){row.push(i);}worksheet.addRow(row).commit();//commit()提交流数据}workbook.commit();//提交整个Excel工作簿}代码示例源代码地址