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。