周大胖子 发表于 2018-5-10 14:18:33

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:31:51

本帖最后由 周大胖子 于 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同级

周大胖子 发表于 2018-5-10 15:57:16

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]
查看完整版本: KOA 中的 ejs