gpt4 book ai didi

javascript - Koa2 - 如何写入响应流?

转载 作者:搜寻专家 更新时间:2023-10-31 23:03:06 24 4
gpt4 key购买 nike

使用 Koa2,我不确定如何将数据写入响应流,所以在 Express 中它会是这样的:

res.write('some string');

我知道我可以将一个流分配给 ctx.body 但我对 node.js 流不太熟悉所以不知道我将如何创建这个流。

最佳答案

koa 文档允许您为响应分配一个流:(来自 https://koajs.com/#response)

ctx.response.body=

将响应正文设置为以下之一:

  • 写的字符串
  • 写入缓冲区
  • 管道流
  • 对象||数组 json 字符串化
  • null 无内容响应

ctx.body 只是 ctx.response.body

的快捷方式

下面是一些如何使用它的示例(加上标准的 koa 主体分配)

调用服务器

  • localhost:8080/stream ... 将以数据流响应
  • localhost:8080/file ... 将以文件流响应
  • localhost:8080/... 只发回标准正文
'use strict';
const koa = require('koa');
const fs = require('fs');

const app = new koa();

const readable = require('stream').Readable
const s = new readable;

// response
app.use(ctx => {
if (ctx.request.url === '/stream') {
// stream data
s.push('STREAM: Hello, World!');
s.push(null); // indicates end of the stream
ctx.body = s;
} else if (ctx.request.url === '/file') {
// stream file
const src = fs.createReadStream('./big.file');
ctx.response.set("content-type", "text/html");
ctx.body = src;
} else {
// normal KOA response
ctx.body = 'BODY: Hello, World!' ;
}
});

app.listen(8080);

关于javascript - Koa2 - 如何写入响应流?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51571054/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com