koa-views
一、认识
koa-views
是一个 Koa
中间件,用于在 Koa
应用中实现模板引擎的渲染。它允许你将动态数据与 HTML
模板结合,以生成最终的 HTML
页面,常用于服务器端渲染。
二、API
2.1 options
-
map
: 映射其他模板引擎,以支持自定义扩展名。 -
extension
: 指定模板文件的扩展名,如 ejs、pug 等。
2.2 ctx.render(view, locals)
ctx.render(view, locals)
: 渲染指定的模板视图,locals
是传递给模板的数据对象。
三、语法
3.1 EJS
const Koa = require('koa');
const Router = require('koa-router');
const KoaViews = require('koa-views');
const Path = require('path');
const app = new Koa();
const router = new Router();
// 配置 koa-views
app.use(KoaViews(Path.join(__dirname, 'views'), {
extension: 'ejs', // 使用 EJS 模板引擎
}));
// 定义路由
router.get('/', async (ctx) => {
await ctx.render('index', { title: 'Hello, Koa Views!' });
});
app.use(router.routes()).use(router.allowedMethods());
// 启动服务器
app.listen(3000, () => {
console.log('Server listening on port 3000');
});
3.2 Handlebars
const Koa = require("koa");
const Views = require("koa-views");
const Path = require("path");
const Router = require("koa-router");
const app = new Koa();
const router = new Router({ prefix: "" });
app.use(
Views(Path.resolve(__dirname, "views"), {
extension: "hbs",
map: { hbs: "handlebars" },
})
);
router.get("/page", async (ctx) => {
await ctx.render("index", {
title: "页面渲染",
});
});
app.use(router.routes());
app.listen(3002, () => {
console.log("页面渲染服务启动成功!");
});