KOA 中的 ejs
本帖最后由 周大胖子 于 2018-5-10 15:41 编辑KOA的使用相对express 略有不同:第一步安装: koa -views 、 ejs
cnpm install koa-views --save
cnpm install ejs --save
第二步配置中间件: 两种配置方式 区别在于 引用模板的后缀名不同:
const views = require('koa-views'); //引入
app.use(views('views',{extension:'ejs' }))// 表示应用.ejs模板 第三步使用 : ctx.render 【就相当于express 的res.render()】
router.get('/login', async (ctx,next)=>{
let title = '这是一个菇凉'
await ctx.render('public/login',{
title
})
await next();
})
重点:数据在路由间的共享1、第一步:将 公共数据 写入一个中间件。
// 配置公共的数据 每一个路由都可以渲染的数据
app.use(async (ctx,next)=>{
ctx.state = {
session:this.session,
title2:'这是一个大BOSS'
}
await next()
})2.在 ejs模板中,直接调用: 【不需要再在路由中再传一遍。不需要!不需要!不需要! 再传回报错。】
<h1> <%=title2 %> <h1>
本帖最后由 周大胖子 于 2018-5-10 14:33 编辑
koa中配置EJS的两种方法:第一种:
app.use(views('views',{map:{html:'ejs'}}));//这是一种使用.html模板 第二种:app.use(views('views',{extension:'ejs' }))// 表示应用.ejs模板
.ejs文件目录在:view/public/login.ejs => app.js与 view同级 EJS 的常用语法:
<%- include header.ejs %> // 用来引入 html 模板<%=title%> //普通的绑定数据<%- tttttt%>//用来接收 html 数据<% if(true){ %> //IF语句
<div>true</div>
<%}else{%>
<div>false</div>
<%} %><%for (var i=0;i<list.length;i++){ %>
<li><%=list %> </li>
<%} %>//循环
页:
[1]