html
express
1 router.get('/',(req,res,next)=>{ 2 //默认值为layout,能够经过更换layout的值来切换模板页 3 res.render("index",{layout:'layout2'}); 4 })
二、中间件的数据调用编程
对于须要在express项目中使用的数据如若须要在全局调用的时候,除了须要把取到的数据当作中间件进行注入觉得,还须要注意的是:json
1 //定义数据的JS文件 middleware文件夹的index.js 2 module.exports.Initdata=(req,res,next)=>{ 3 //数据的定义(能够接 字符串,json数组...) 4 res.locals.title="测试"; 5 6 next();//此处是必不可少的 7 } 8 9 //数据注入点的app.js 10 //定义中间件数据 (由于调用的数据是在middleware文件下的index.js 因此会默认去找index.js) 注:中间件定义的位置必定要在路由注册的前面,否则就没有效果 11 const {Initdata}=require('./middleware'); 12 //引用中间件 13 app.use(Initdata) 14 15 /* 16 对于界面的直接调用,全部的界面数据都依此进行调用,定义的名称须要跟调用的位置相同 17 */ 18 {{title}} 19 20 /* 21 若是担忧数据的冲突须要从新命名调用的时候,能够直接在界面对应的路由配置项中进行重命名配置 22 */ 23 router.get('/', function(req, res, next) { 24 //对于数据的获取 25 let titles=res.locals.title; 26 res.render('index',{ 27 //重命名的值 28 titles:titles 29 }); 30 }); 31 //重命名以后的值调用 32 {{titles}}
数组
从路由传入到界面的参数须要进行展现时,须要用到一系列的模板引擎来进行处理,主要有 app
插值绑定:{{prop}}
测试
注释:{{! content}}
ui
html内容:{{{htmlstr}}}
this
条件语句:{{#if condition}}....{{/if}}
spa
**condition只能是布尔值或者能够转换为布尔值的值,他不能是表达式
**能够结合{{else if condition}}
、{{else}}
使用
{{#if bool}} 我是正确的 {{else}} 我是错误的 {{/if}}
let arr=[ { name:"张三", city:{cname:"武汉"}, hobby:["篮球","编程"] }, { name:"李四", city:{cname:"北京"}, hobby:["棒球","编程"] } ]
<ul> <!--开始遍历数组--> {{#each arr}} <li> <!--循环的标量(0,1,2)--> {{@index}} {{name}} - {{city.cname}} - {{#each hobby}} {{.}} {{/each}} </li> {{else}} 没有任何数据 {{/each}}</ul>