逻辑混乱 阅读者可忽略
1.采用nunjucks第三方模板库渲染数据
结合继承的思想 我们引入模板引擎 进行页面开发 同时 引擎是拥有 数据绑定 的功能
这个功能在开发中起到很大的作用
在项目根目录下 npm install nunjucks –save 下载;
在app.js 引入nunjucks模板库 var nunjuck = require(‘nunjucks’)
并配置模板引擎:
1 | app.set('view engine', 'tpl'); |
2.路由Router
随着对页面进行操作,页面会发生变化。那么页面之间的跳转如何实现?数据如何在跳转中进行加载?
引入 var router = express.Router();
页面中跳转的URL: /user/edit 对应路由中配置的路径 router.get(‘/user/edit’,methods);
路由请求中调用的方法(methods):是控制跳转至URL后 需要对页面数据交换 进行的操作
遵行MVC模型,将其定义在根目录下 file://Controllers 而负责页面跳转路由,则定义在根目录下 file://Router;
关于Router,补充与一点,专门与服务器 请求数据的 我们独立分开成两个文件 将其命名api.js 而页面跳转
则命名为index.js 目的是 严谨代码逻辑,体现模块化的功能 下面Controllers Model 也有所体现。
3.控制器Controllers 与 模块器Model
Controllers: 在里面定义 methods: async function(req,res,next){
调用封装后的Model里面定义的读取数据库的方法}
在方法里面 调用到Model的方法时 使用 await (async await的理解 后续补上)
res.locals.protype = value;
res.locals 是express中 对于单次请求响应的周期内 所使用的数据
app.locals 则针对于 全局的 常量 来使用
value 就是 Model 与数据库 连接后 所获取得到的数据。
##本内容关注的是页面的渲染 只关注 从数据库获取数据#
res.render(‘index’) 服务器发出响应 要求 客户渲染模板的方法 事先在 app.js 中配置好模板引擎 可忽略 模板文件的后缀
index完整的信息是 ‘路径/index.tpl’
4.模板调用数据
上面操作中:res.locals.protype =value;
protype 对应tpl文件中的使用语法如下
加载数据
####以上就是数据渲染到模板的流程
深化请继续阅读
nunjuck.js 模版语法
express.js request respones router 的API