道者编程

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。


最新评论:
我要评论:

看不清楚