博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Koa与Node.js开发实战(3)——Nunjucks模板在Koa中的应用(视频演示)
阅读量:6372 次
发布时间:2019-06-23

本文共 1749 字,大约阅读时间需要 5 分钟。

hot3.png

技术架构:

 

在Koa中应用Nunjucks,需要先把Nunjucks集成为符合Koa规格的中间件(Middleware),从本质上来讲,集成后的中间件的作用是给上下文对象绑定一个render(view, model)方法,这样,后面的Controller就可以调用这个方法来渲染模板了。

NPM社区有很多开源爱好者提供的第三方中间件。开发者可以根据实际情况自由选择,也可以像iKcamp团队一样,自己实现集成Nunjucks。本示例中,选用了koa-nunjucks-2模块。

安装koa-nunjucks-2,命令如下:

npm install koa-nunjucks-2 --save

此处的示例代码将会在5.1.3节的基础上继续操作。修改app.js并引入koa-nunjucks-2中间件,同时指定存放视图文件的目录views。项目结构如下:

├── controller/│     ├── home.js├── service/│     ├── home.js├── views/├── app.js├── router.js

修改app.js文件,部分代码已省略。代码如下:

01     const nunjucks = require('koa-nunjucks-2');       // 引入模板引擎02     app.use(nunjucks({03              ext: 'html',                                 // 指定视图文件默认后缀04              path: path.join(__dirname, 'views'),            // 指定视图目录05              nunjucksConfig: {06                        trimBlocks: true                                 // 开启转义,防止Xss漏洞07              }08     }));在之前的项目中,视图内容被写在了controller/home.js里面,现在需要把视图部分的代码迁移到views中。新建view/home/login.html,代码如下:01     02     03              04                        05                        
06                       
07              08     09    
10             
11             
12             
13             
14             
15    
16     17    

重写controller/home.js中的login方法。代码如下:

login: async(ctx, next) => {         await ctx.render('home/login',{                   btnName: 'GoGoGo'         });},

注意:函数中使用了await语句来异步读取文件,因为需要等待,所以在读取文件之后再进行请求的响应。

打开浏览器并访问地址http://localhost:3000/user,将会看到一个简易版的登录视图。

对Nunjucks模板引擎的引入给本项目增加了View层。实现更完善的视图功能还需要增加静态资源目录等,如果能直接使用静态服务器的话更好。后面章节中,将会介绍如何增加静态文件以及对项目的视图进行美化。

本节在线视频地址https://camp.qianduan.group/koa2/2/1/6,二维码

 

喜欢就和我一起学习这本书《》吧!

转载于:https://my.oschina.net/tushuchen/blog/3001408

你可能感兴趣的文章
走进 JDK 之 Long
查看>>
Android打地鼠游戏的修改和优化
查看>>
Java异常
查看>>
map、reduce、filter、for...of、for...in等总结
查看>>
html2canvas-实现页面截图
查看>>
入门 | 从文本处理到自动驾驶:机器学习最常用的50大免费数据集
查看>>
笔记-从源码角度分析alloc与init的底层
查看>>
消除GitHub上的历史记录
查看>>
自学 JAVA 的几点建议
查看>>
第十三天-企业应用架构模式-对象-关系元数据映射模式
查看>>
k8s与HPA--通过 Prometheus adaptor 来自定义监控指标
查看>>
虎牙直播在微服务改造方面的实践和总结
查看>>
怎样将优酷网站下载的视频KUX转MP4格式
查看>>
MongoDB 分组统计
查看>>
二进制状态码
查看>>
Vue 中 CSS 动画原理
查看>>
关于 Promise 的 9 个提示
查看>>
算法复习
查看>>
安卓中高级开发面试知识点之——缓存
查看>>
Java的初始化顺序
查看>>