nodejs-koa(五)koa模板引擎
一:安装
1:先安装模板引擎中间件:koa-views,https://github.com/queckezz/koa-views
npm install koa-views --save
2:再安装模板引擎
npm install --save handlebars
3:干,在app.js中注入:
const views = require('koa-views'); //把模板中间件搞进来 const path = require('path'); //处理路径的玩而已也搞进来 // 加载模板引擎 app.use(views(path.join(__dirname, './view'), { //模板位置 extension: 'html', //模板扩展名改成html map: { html: 'handlebars' } // 上面改成html,这里也要改成html,handlebars是什么意思?koa-views只是一个模板管理工具,这里我们告诉它用handlebars }));
4:简单应用一下:我们在前面的控制器加入:
return await ctx.render('home', { //渲染到home.js模板 body:'我是body' //传这个参数 })5:我们在模板里面加入,view目录下新建一个home.js模板文件
{{body}}
二:helpers助手
这玩意儿有什么用?比如我们自己定义一个方法,然后又想这个方法,在模板中可以直接调用,那么就用到了这玩意儿。我们在app.js里面再加几句:options节点
app.use(views(path.join(__dirname, './view'), { extension: 'html', map: { html: 'handlebars' }, options: { helpers: { //助手 uppercase: (str) => str.toUpperCase() // 定义把字符串转大写 }, } }));然后模板中应用:
{{uppercase 'FFF'}} //字符串FFF转大写 {{uppercase title }} //把模板变量转大写
三:layout,这玩意叫布局,非常重要
比如我们做网页,有些公用的东西,比如头部,每个页面包含进去就行了,没必要每个页面单独干。
partials: { //布局方法
layTop: './top' // 我们搞一个公用的top.js模板,layTop为模板名
}
完整的,在上面的基础上添加:// 加载模板引擎 app.use(views(path.join(__dirname, './view'), { extension: 'html', map: { html: 'handlebars' }, options: { helpers: { //辅助方法,模板直接调用 uppercase: (str) => str.toUpperCase() // 定义把字符串转大写 }, partials: { //布局方法 layTop: './top' // 我们搞一个公用的top.js模板,layTop为模板名 } } }));然后模板调用:
{{>layTop}}注意,这里是{{> 开头,相当于require。