KOA笔记(02):ejs模板引擎

1、ejs模板引擎的作用

在开发中,我们经常会将后端的数据渲染到前端,这个时候就要用到ejs模板引擎
ejs起到的是一个中间件的作用,在后端的数据经过出路返回到前端

2、ejs模板的使用
要想使用ejs,先得在项目中添加 koa-views 与 ejs

npm i ejs --save
npm i koa-views --save

3、在代码中使用ejs

3.1、引入第三方中间件

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

3.2、配置模板引擎方式一
以这种方式默认后缀名为html为模板

const mEjs = views(__dirname+'/views',{
//这里如果不写dirname会在node_modules下查找
    map:{
        html:'ejs' //找到后缀名为html的文件,以ejs渲染,此时模板为html
    }
})

3.3、配置模板引擎方式二
以这种方式默认后缀名为ejs为模板

const mEjs = views('views',{
    extension:'ejs'//以这种方式模板为ejs
})

3.4、使用ejs

koa.use(mEjs);

4、使用render函数渲染ejs模板

render函数是异步函数,要记得在前面加await

在views文件夹下建立模板
这里我配置的koa-view是按照第一种
在这里插入图片描述
在路由中渲染ejs模板

router
    .get('/', async(ctx) => {
        await ctx.render('test')
    })

此时路由就会返回index页面

5、ejs的进阶

1、传递数据

  //ejs把后台数据渲染到前台
    .get('/new', async (ctx) => {
        let evil = '迪奥布兰度';//以ejs渲染,直接将后台数据渲染,不会再返回body了
        await ctx.render('index2',{//render函数会在数据加载完毕后,在进行渲染
            //所以render是一个异步方法,这里记得加await
            evil:evil
        });
    })

对应的ejs模板

<body>
    JOJOprprprp
    <h2><%=evil%> </h2>
</body>

2、循环数据

 //ejs模板引擎循环数据
    .get('/circu', async (ctx) => {
        let list = [1,2,3];
        await ctx.render('circu',{
            list:list 
        });
    })

对应的ejs模板

<ul>
    <% list.forEach(ele => { %>
    <li><%= ele %> </li>
    <% }) %>
</ul>

3、在ejs中引入其他的ejs

   <%- include public/header.html %> 

4、如果我们有公共的数据要往多个ejs模板中传递
将他们保存到ctx.state中

//写一个中间件配置公共的信息
    koa.use(async ctx=>{
        ctx.state.userInfor = 'sss';
        await next();
    })

//<%= .h%> 按照原样输出
//<%-%>中可以放html代码,也可以放一些字符串,会为你解析html
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值