koa ejs 模板引擎

Koa 中使用 ejs 模板的使用

 

1、安装 koa-views ejs

1. 安装 koa-views npm install --save koa-views / cnpm install --save koa-views 
2. 安装 ejs npm install ejs --save / cnpm install ejs --save

 

2、引入 koa-views 配置中间件

const views = require(‘koa-views‘); app.use(views(‘views‘, { map: {html: ‘ejs‘ }}));

3Koa 中使用 ejs:

router.get(‘/add‘,async (ctx)=>{ 
let title = ‘hello koa2‘
await ctx.render(index‘,{   title
  })
})

4、Ejs 引入模板

<%- include header.ejs %>

5、Ejs 绑定数据

<%=h%>

6、Ejs 绑定 html 数据

<%-h%>

7、Ejs 模板判断语句

<% if(true){ %> 
    <div>true</div>
<%} else{ %> 
    <div>false</div>
<%} %>

8、Ejs 模板中循环数据

<%for(var i=0;i<list.length;i++) { %>
<li><%=list[i] %></li> <%}%>

demo :

//引入 koa模块

/* ejs模板引擎的使用: 1.npm install koa-views --save 2.npm install ejs --save 3.var views = require(‘koa-views‘); app.use(views(__dirname, { extension: ‘ejs‘ })) //模板的后缀名是ejs 4 await ctx.render(‘index‘); 注意:我们需要在每一个路由的render里面都要渲染一个公共的数据 公共的数据放在这个里面,这样的话在模板的任何地方都可以使用 ctx.state = { //放在中间件 session: this.session, title: ‘app‘ }; * */

var Koa=require(‘koa‘), router = require(‘koa-router‘)(), views = require(‘koa-views‘); var app=new Koa(); //配置模板引擎中间件 --第三方中间件 //app.use(views(‘views‘, { map: {html: ‘ejs‘ }})); //这样配置也可以 注意如果这样配置的话 模板的后缀名是.html
app.use(views(‘views‘,{ extension:‘ejs‘  /*应用ejs模板引擎*/ })) //写一个中间件配置公共的信息
app.use(async (ctx,next)=>{ ctx.state.userinfo=‘张三‘; await next();/*继续向下匹配路由*/ }) router.get(‘/‘,async (ctx)=>{ let title="你好ejs"; await ctx.render(‘index‘,{ title:title }); }) router.get(‘/news‘,async (ctx)=>{ //ctx.body=‘这是一个新闻‘;
 let list=[‘11111‘,‘22222‘,‘33333‘]; let content="<h2>这是一个h2</h2>"; let num=12; await ctx.render(‘news‘,{ list:list, content:content, num:num }) }) app.use(router.routes()); /*启动路由*/ app.use(router.allowedMethods()); app.listen(3000);
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
</head>
<body>


<% include public/header.ejs%>
这是一个ejs的模板引擎 <h2><%=title%>-----<%=userinfo%></h2>



</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
</head>
<body>

<% include public/header.ejs%>

<h2>ejs循环数据---<%=userinfo%></h2>

<ul>
    <%for(var i=0;i<list.length;i++){%>
        <li><%=list[i]%></li>
    <%}%>
</ul>

<h2>绑定html数据</h2>

<br/>

<%=content%>


<br/>


<%-content%>


<br/>
<br/>

<h2>条件判断</h2>
<br/>
<%if(num>24){%> 大于24 <%}else{%> 小于24 <%}%>

<br/>
<br/>
</body>
</html>