使用流文件(https://docs.nestjs.com/techniques/streaming-files)而不是用NestJS在响应中写入对象的优点是什么?
const data = ...;
response.writeHead(200, {
"Content-Type": "text/csv",
"Content-Disposition": `attachment; filename=something.csv`,
});
return response.end(data);
vs
const data = ...;
const readable = Readable.from([data]);
response.set({
"Content-Type": "text/csv",
"Content-Disposition": `attachment; filename=something.csv`,
});
return new StreamableFile(readable);
发布于 2022-07-05 15:37:15
使用StreamableFile
,您根本不需要将@Res()
注入路由处理程序,您可以将配置和内容类型设置为options对象的一部分,作为StreamableFile
构造函数的第二个参数。这还意味着,如果您正在对控制器进行单元测试,则不需要模拟res.writeHead
或res.end
方法,只需断言返回的实例实质上等于创建的StreamableFile
(即具有相同的道具和值)。
对于框架来说,这也是不需要担心的另一件事。如果你喜欢写res.write
或stream.pipe(res)
,那就去写吧。
https://stackoverflow.com/questions/72871942
复制相似问题