Nod Joy

是谁来自山川湖海 却囿于昼夜厨房与爱


  • 首页

  • 技术

  • 笔记

  • 杂记

  • 分享

  • 归档

  • 关于

  • 状态

  • 搜索

  • 我的小店

  • Harbor

  • 域名证书管理

  • 在线文档

  • 在线笔记

  • 云盘

  • Quick Reference

  • Linux 命令查询

  • Mock 模拟数据

  • 文档预览服务
推荐
  • 科学推荐(按量付费)
友链
  • milu杰克
  • 小菜
close

Koa ejs模板引擎与art-template模板引擎

时间: 2020-08-10   |   分类: 笔记     |   阅读: 539 字 ~2分钟

Koa ejs的安装与使用

安装koa-views

cnpm install koa-views --save

安装ejs

cnpm install ejs --save 

配置模板引擎中间件

var views = require('koa-views');

app.use(views('views',{
    extension:'ejs'
}));        //这样配置模板的后缀名是.ejs

//第二种配置方式
app.use(views('views',{map:{html:'ejs'}})); //这样配置模板的后缀名是.html

渲染模板

router.get('/',async function(ctx){
    await ctx.render('index');  //渲染模板
});

将数据渲染到模板

router.get('/',async function(ctx){
    let title = '首页|home' 
    await ctx.render('index',{
        title:title
    });
});

模板文件

<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title><%=title%></title>
</head>
<body>
    <h3>ejs模板</h3>
</body>
</html>

循环遍历数据

router.get('/',async function(ctx){   //ctx context 包含request和responses等信息
    let title = 'Home'
    await ctx.render('index',{
        title:title,
    });
}).get('/news',async (ctx)=>{
    let list = ['11','aa','zz','bb','ff','kk'];
    await ctx.render('news',{
        list:list,
    });
});

模板文件写法

<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>新闻列表</title>
</head>
<body>
    <div>
        <ul>
        <%for(var i=0;i<list.length;i++){%>
            <li><%=list[i]%></li>
        <%}%>
        </ul>
    </div>
</body>
</html>

新闻列表

模板的引用

<% include public/header.ejs%>  //表示引用public目录下的header.ejs模板

解析HTML标签

let content = '<h2>Content</h2>';

<%-content%>        //解析HTML标签

使用中间件配置公共的数据 在模板中可以直接使用

app.use(async (ctx,next)=>{
    ctx.state.userinfo='zhangsan';
    
    await next();   /*继续向下匹配路由*/
})

art-template模板引擎(推荐使用)

安装art-template并引入

cnpm install --save art-template
cnpm install --save koa-art-template

path=require('path');
const render = require('koa-art-template');

配置art-template模板引擎

render(app, {
    root: path.join(__dirname, 'views'),   // 视图的位置
    extname: '.html',  // 后缀名
    debug: process.env.NODE_ENV !== 'production'  //是否开启调试模式

});

渲染模板

await ctx.render('user');

模板语法

官方文档


喜欢这篇文章的话 打赏一下吧!

Wechat Alipay

#Koa# #前端框架# #Node.js#
Koa post提交数据与静态资源中间件
Koa路由和中间件
  • 文章目录
  • 站点概览
Nod Joy

Nod Joy

Programmer & Architect

GitHub Instagram Weibo Email
71 日志
4 分类
70 标签
工具站
我的小店 Harbor 域名证书管理 在线文档 在线笔记 云盘 Quick Reference Linux 命令查询 Mock 模拟数据 文档预览服务
推荐
  • 科学推荐(按量付费)
友情链接
  • milu杰克
  • 小菜
  • 安装koa-views
  • 安装ejs
  • 配置模板引擎中间件
  • 渲染模板
  • 将数据渲染到模板
  • 循环遍历数据
  • 模板的引用
  • 解析HTML标签
  • 使用中间件配置公共的数据 在模板中可以直接使用
  • 安装art-template并引入
  • 配置art-template模板引擎
  • 渲染模板
  • 模板语法
京ICP备17004223号 © 2020 - 闹得欢
Powered by - HUGO
Theme by - NexT
访客量 -
0%