marko/docs/koa.md
2017-03-07 19:31:34 -04:00

1.0 KiB

Koa + Marko

Installation

npm install koa --save
npm install marko --save

Usage

require('marko/node-require');

const Koa = require('koa');

const app = new Koa();

app.use((ctx, next) => {
    ctx.type = 'html';
    ctx.body = template.stream({
            name: 'Frank',
            count: 30,
            colors: ['red', 'green', 'blue']
        });
});

app.listen(8080);

You may also easily add gzip streaming support without additional dependencies:

require('marko/node-require');
const { createGzip } = require('zlib');

const Koa = require('koa');

const app = new Koa();

app.use((ctx, next) => {
    ctx.type = 'html';
    ctx.body = template.stream({
            name: 'Frank',
            count: 30,
            colors: ['red', 'green', 'blue']
        });
    
    ctx.vary('Accept-Encoding');
    if (ctx.acceptsEncodings('gzip')) {
      ctx.set('Content-Encoding', 'gzip');
      ctx.body = ctx.body.pipe(createGzip());
    }
});

app.listen(8080);