koa + pug模板引擎
admin
2024-02-01 05:18:12
0

模板引擎

  • 模板引擎:模板引擎是web应用中动态生成html的工具,负责将数据和模板结合。
  • 常见模板引擎有:ejs、jade(现更名为pug)、Handlebars、Nunjucks、Swig等;
  • 使用模板引擎可以是项目结构更加清晰,结构更加合理,让项目维护变得更简单;

pug模板引擎使用

安装pug

  • npm i pug -g

pug常用语法

  • pug语法:通过缩进关系,代替以往html的层级包含关系,注意要统一使用tab或者空格缩进,不要混用
    • 内联书写层级,a: img
    • style属性:div(style={width:”200px”,color:”red”})
    • 使用”-”来定义变量,使用“=”把变量输出到元素内;
    • 通过 #{variable} 插 相应的变量值
    • html 元素属性通过在标签右边通过括号包含(可以通过判断来添加)
    • 文本通过在 字前 添加竖线符号“|”可让 jade 原样输出内容 在html标签标记后 通过空格隔开 本内容 在html标签标记后通过添加引号“.”添加块级文本
    • 注释:可以通过双斜杠进 注释,jade有3种注释 式,可以分别对应输出html 注释、 输出html注释、块级html注释
    • 循环:each val in [1,2,3]
    • 判断语句:”if else” case when default
    • mixin:混合模式
    • include common/footer.pug 通过include引入外部文件

demo

  • index.pug

html(lang="en")headmeta(charset="UTF-8")meta(name="viewport", content="width=device-width, initial-scale=1.0")meta(http-equiv="X-UA-Compatible", content="ie=edge")title Documentstyle..mydiv{width:200px;height:200px;background:red;}bodyh1 我是标题div 我是divdiv(class="mydiv") 我是类名为mydiv的divspan 我是span.mydiv2(style={width:"100px",height:"100px",background:"blue"}) 我是div2#myid 我是id为myid的div//- 我是pug注释//- 我是第一行我是第二行// 我是html注释//我是第一行我是第二行div| hello- let str = "你好"p #{str}p #{data}uleach item,index in usersli 姓名是:#{item.name};年龄是:#{item.age};身高是:#{item.height};索引是:#{index}- for(let i=0;i<4;i++)span 我是循环出来的数据#{i}- let num = 1case numwhen 1p num 是一when 2p num 是二defaultp num 是其他值mixin mydivdiv 我是非常常用的div+mydiv+mydivmixin pet(name,sex)p 这是一只#{name};它的性别是#{sex}+pet("狗狗","公")+pet("猫","母")include common.pugscript(type="text/javascript").console.log(1111);
  • common.pug
h2 我是公共模板
  • index.js
const Koa = require("koa");
const Router = require("koa-router");
const views  = require("koa-views");
let app = new Koa();
let router = new Router();
app.use(views(__dirname+"/views",{map:{html:"pug"}
}));
router.get("/",async ctx=>{// ctx.body = "hello";let users = [{name:"张三",age:20,height:"178cm"},{name:"李四",age:25,height:"179cm"},{name:"王五",age:26,height:"180cm"}]await ctx.render("index.pug",{data:"我是数据",users});
});
app.use(router.routes());
app.listen(3000);

相关内容

热门资讯

一天22个大V账号被封 平台出... 雪球大V“金浤”被罚之后,一天之内,22个大V账号被永久封禁,平台连续出手整治涉资本市场违规行为。 ...
罕见!自砍七成融资规模,百瑞吉... 导读:过去一年中,为了尽快向A股大门靠近,百瑞吉还付出了不小的代价——大幅削减融资规模。近年来,拟北...
氢能商业化难题待解,记者实探云... 本报(chinatimes.net.cn)记者胡雅文 曲靖报道 氢能商业化仍在探索中。 近年来国家和...
原创 西... 哥本哈根街头,上万名示威者举着“绝不出售格陵兰岛”的标语走向美国驻丹麦大使馆,寒冷的北欧空气中弥漫着...
成品油价或年内首涨! 今日(1月20日)24时,国内成品油新一轮调价窗口将开启。综合多家机构预测,成品油价或年内首涨,消费...
原创 电... 外资来了,不是随便逛街,是掏钱出手,高盛、瑞银、摩根士丹利、摩根大通四家都在名单上,其中三家在202...
信用卡分期纳入贴息,多家银行迅... 【大河财立方消息】1月20日,财政部、中国人民银行、金融监管总局发布《关于优化实施个人消费贷款财政贴...
原创 金... “好家伙,前几天还说金价破纪录了,这转头又掉下来了?这过山车坐的,心脏真受不了。”最近但凡关心点金价...
卖不动了?巨头宣布:降价!10... 自2022年见顶以来,受主要消费国奢侈品消费降温、培育钻石日益走俏等因素影响,钻石行业正遭遇现代史上...
鸣鸣很忙开启招股,2万家店撑起... 1月20日,中国最大的休闲食品饮料连锁零售商——湖南鸣鸣很忙商业连锁股份有限公司(下称“鸣鸣很忙”)...
原创 继... 去年九月的那个深夜,白俄罗斯边境毫无征兆地熄火了,原本跑得飞快的中欧班列,在那一刻被人按下了暂停键。...
供应扰动再发酵,碳酸锂尾盘涨停... 经历了一次急速回调后,碳酸锂期货又杀了一个“回马枪”。 1月20日,碳酸锂期货主力合约在尾盘触及涨停...
原创 融... 2026年伊始,A股市场便以一派火热景象迎接投资者,市场热度在多个维度均有所体现,尤其以融资余额的迅...
财经老王丨140万亿元 跟咱老... 来源:甘肃网络广播电视台 2025年,中国经济总量突破140万亿元。这个数字跟咱们老百姓有啥关系呢?...
小红书奶茶养号秘诀——4288... 大家好,我是4288养号盒子,提供专业免费养号软件,不仅有抖音养号,还有小红薯养号等、还有短视频热门...
原创 干... 美国这些年总想在经济上给中国使绊子,从贸易战打到科技限制,可中国那边经济还是稳稳的往前拱。2018年...
纪念币纪念钞二手交易莫冲动 来源:经济日报 目前,二手市场高价接盘的风险很高。一方面,卖家无实物,且二手市场缺乏权威验货渠道,买...
“十年十亿”魔咒告破?全球巨头... 2026年开年,AI制药正以前所未有的速度冲击传统研发的“双十定律”——一款新药研发需要十年时间、耗...
红杉资本考虑参投Anthrop... 红杉资本正准备加入Coatue和新加坡主权财富基金GIC,参与人工智能初创公司Anthropic P...
大行回应!消费贷贴息政策升级,... 来源:第一财经 消费贷贴息政策迎来重要升级,落地细节备受关注。1月20日晚间,多家国有大行表态将积极...