mirror of
https://github.com/marko-js/marko.git
synced 2025-12-08 19:26:05 +00:00
* add prettierignore * switch to eslint:recommended + eslint-config-prettier * fix eslint violations * remove more .jshintrc files * better conditional structure * add prettier and update prettier ignore * add precommit hook to run prettier * add lint check to precommit and format check to ci * format all the things * add generated files * let npm do it's thing with package.json
1.1 KiB
1.1 KiB
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);