koa --- nunjucks在Koa中的使用、中间件的配置
生活随笔
收集整理的这篇文章主要介绍了
koa --- nunjucks在Koa中的使用、中间件的配置
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
Nunjucks在Koa中的应用
- app.js
注: 配置要在router前面
- 使用 (ctx.render(path))
- /controller/home.js
关键代码
- 使用&&挂载&&配置nunjucks
- views的目录结构如下
- 例如使用 /views/home/login.html 模板进行渲染
- /views/home/login.html
Nunjucks语法介绍
一般情况下,模板引擎都需要具备以下功能: 变量、逻辑表达式、循环、layout、include、宏和扩展等.
1.文件扩展名
Nunjucks支持用任意扩展名来命名模板文件,但Nunjucks社区还是推荐使用’.njk’为后缀进行命名
2.变量
变量会从模板文件运行时的上下文获取,如果需要显示一个变量,代码如下:
{{username}}
模板文件运行时,会从上下文对象中查找username属性,然后显示。模板语法也支持像JavaScript一样获取变量的属性(可使用点操作符或中括号操作符),代码如下:
如果变量的值为undefined或null将不予显示,引用的对象为undefined或null也是如此,
3.注释
在Nunjucks模板语法中,可以使用语法{# 注释内容 #}来编写注释,注释不会被编译,示例代码如下:
{# Loop through all the users #} {% for user in users %}...{% endfor %}模板文件运行后只会渲染第2行的文本内容。
4.标签
标签是一些特殊的区块,应用标签可以对模板执行一些操作。Nunjucks包含一些内置的标签,同时也支持自定义标签。
- if标签
if为分支语句,与JavaScript中的if语句类似,代码如下:
- for标签
for可以用来遍历数组和对象。假设遍历如下数组:
对应的模板代码如下:
<h1>Posts</h1> <ul> {% for item in items %}<li>{{ item.title }}</li> {% else %}<li>This would display if the 'item' collection were empty</li> {% endfor %} </ul> 上面的示例通过for循环调用items数组中的每个元素,并将对应元素的title属性显示出来。如果items是空数组,则会渲染else语句中的内容。- macro(宏)标签 宏: 定义可复用的内容,类似于编程语言中的函数,示例代码如下: ````javascript {% macro field(name, value='', type='text') %} <div class="field"> <input type="{{ type }}" name="{{ name }}" value="{{ value | escape }}" /> </div> {% endmacro %}接下来就可以把field当作函数一样使用了,代码如下:
{{ field('user') }} {{ field('pass', type='password') }}- Extends/Block标签
Extends用来指定模板继承,被指定的模板为父级模板。Block(区块)定义了模板片段并标识一个名字,在模板继承中使用。父级模板可指定一个区块,子模板覆盖这个区块。Extends标签和Block标签相互搭配,在模板继承场景中经常会被用到。在实战项目中,经常需要设定一个固定的公用模板Layout,然后开发人员再创建一个业务级的模板文件,并把Layout继承过来。公用模板文件layout.html的示例代码如下:
总结
以上是生活随笔为你收集整理的koa --- nunjucks在Koa中的使用、中间件的配置的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 知名中文语料库
- 下一篇: koa --- 使用koa-multe