Appearance
koa-views
简介
koa-views是一个用于渲染视图的 Koa 中间件,支持多种模板引擎(如 ejs、pug、nunjucks 等),并提供了简单的 API 来渲染视图。
安装
bash
npm install koa-views
# 安装需要的模板引擎,例如 ejs
npm install ejs基本使用
javascript
const Koa = require('koa');
const views = require('koa-views');
const path = require('path');
const app = new Koa();
// 配置视图中间件
app.use(views(path.join(__dirname, 'views'), {
extension: 'ejs' // 默认文件扩展名
}));
// 使用示例
app.use(async ctx => {
// 渲染视图
await ctx.render('index', {
title: '首页',
content: '欢迎使用 koa-views'
});
});
app.listen(3000);视图文件示例 (views/index.ejs)
ejs
<!DOCTYPE html>
<html>
<head>
<title><%= title %></title>
</head>
<body>
<h1><%= title %></h1>
<p><%= content %></p>
</body>
</html>配置选项
extension: 默认的文件扩展名map: 文件扩展名与模板引擎的映射options: 传递给模板引擎的选项autoRender: 是否自动渲染(默认为 true)root: 视图文件的根目录
多模板引擎支持
javascript
app.use(views(__dirname + '/views', {
map: {
html: 'ejs',
njk: 'nunjucks'
}
}));局部变量
javascript
app.use(async (ctx, next) => {
// 设置全局变量
ctx.state = {
website: '我的网站',
user: ctx.session.user
};
await next();
});注意事项
- 确保安装对应的模板引擎
- 正确配置视图文件的路径
- 注意模板引擎的性能影响
- 合理使用缓存机制
- 避免在模板中执行复杂的逻辑
- 注意视图文件的安全性,防止模板注入攻击