ejs render middleware for Koa.js
npm install @koa/ejs> Koa ejs view render middleware. support all feature of ejs.


``js
const Koa = require("koa");
const render = require("@koa/ejs");
const path = require("path");
const app = new Koa();
render(app, {
root: path.join(__dirname, "view"),
layout: "template",
viewExt: "html",
cache: false,
debug: true,
});
app.use(async function (ctx) {
await ctx.render("user");
});
app.listen(7001);
`
Or you can checkout the example.
- root: view root directory.
- fs: file system module with same Node.js fs interface (default Node.js fs module).layout
- layout: global layout file, default is , set false to disable layout.html
- viewExt: view file extension (default ).true
- cache: cache compiled templates (default ).false
- debug: debug flag (default ).%
- delimiter: character to use with angle brackets for open / close (default ).
- async: When true, EJS will use an async function for rendering. Depends on async/await support in the JS runtime.
- outputFunctionName: Set to a string (e.g., 'echo' or 'print') for a function to print output inside scriptlet tags.
@koa/ejs supports layouts. The default layout file is layout. If you want to change default layout file, use settings.layout. Also you can specify layout by options.layout in await ctx.render.layout = false
Also you can set to disable the layout.
``
koa ejs
<%- body %>
Supports ejs includes.
``
<%- include ('user.html') -%>
Support ctx.state in koa.
If you're project based on TypeScript, we recommend using @types/koa-ejs` until we start supporting it in the upcoming releases.