Peiqin

时间有限,不要在此停留太久

0%

    页面模板渲染数据

逻辑混乱 阅读者可忽略

1.采用nunjucks第三方模板库渲染数据

结合继承的思想 我们引入模板引擎 进行页面开发 同时 引擎是拥有 数据绑定 的功能
这个功能在开发中起到很大的作用

在项目根目录下 npm install nunjucks –save 下载;

在app.js 引入nunjucks模板库 var nunjuck = require(‘nunjucks’)

并配置模板引擎:

1
2
3
4
5
6
7
app.set('view engine', 'tpl');

nunjucks.configure('views',{
autoescape:true,
express:app,
watch:true
});

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