首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Koa2 -如何写入响应流?

Koa2 -如何写入响应流?
EN

Stack Overflow用户
提问于 2018-07-28 11:44:23
回答 1查看 17.6K关注 0票数 11

使用Koa2和我不知道如何将数据写入响应流,所以在Express中应该是这样的:

代码语言:javascript
复制
res.write('some string');

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

EN

回答 1

Stack Overflow用户

发布于 2018-07-31 14:48:38

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

ctx.response.body=

将响应体设置为以下之一:

  • 串写
  • 缓冲器写入
  • 溪流管道
  • 对象\x数组json-字符串化
  • 空无内容响应

ctx.body只是通往ctx.response.body的捷径

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

调用服务器

  • 本地主机:8080/流..。将用数据流进行响应。
  • 本地主机:8080/文件..。将用文件流进行响应。
  • 本地主机:8080/.只是送回标准的身体
代码语言:javascript
复制
'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);
票数 12
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51571054

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档