Koa + Marko
See the marko-koa sample project for a fully-working example.
Installation
npm install koa --save
npm install marko --save
Usage
require("marko/node-require");
const Koa = require("koa");
const app = new Koa();
const template = require("./index.marko");
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();
const template = require("./index.marko");
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);
EDIT Contributors
Helpful? You can thank these awesome people! You can also edit this doc if you see any issues or want to improve it.