Skip to content
On this page

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();
});

注意事项

  1. 确保安装对应的模板引擎
  2. 正确配置视图文件的路径
  3. 注意模板引擎的性能影响
  4. 合理使用缓存机制
  5. 避免在模板中执行复杂的逻辑
  6. 注意视图文件的安全性,防止模板注入攻击

要保持清醒 永远不抱有意外的幻想 凭空的期待最要命