ejs模板引擎全局变量
- 前端
- 三生万物
- 0
一、应用级全局变量:app.locals
这里的app变量是指:var app = express();
的app,即express实例。
通过给 app.locals.xxx
设定新增属性来实现在全express应用中各个ejs页面中均可直接使用。如:
app.locals["CONFIG"] = "xxxx";
可以在任何ejs页面中可以使用 <%= CONFIG %>
变量。
二、响应级全局变量:resp.locals
这个的resp是指express的use中间件的Response对象:
app.use(function (req, resp, next) {...}
可以通过对 resp.locals.xxx
设定值来实现在当前响应中
resp.locals["UID"] = "xxx";
也可以实现与 app.locals
相同的效果,令所有页面模板可直接使用。
两种全局变量的区别
app.locals
是全应用唯一,也是全局共享,缺点是任何人修改都会影响整所有其他用户。适用于放置一些应用配置类型的常量数据。resp.locals
是响应范围内的全局数据,使用与在对某一个Response处理的各个阶段共享的数据。适用于放置一些用户配置类型的数据,如授权信息,ID等。- 注意:
app.locals.**
可以被response.locals.**
的同名属性值覆盖;response.locals.**
可以被render页面的renderData.**
的同名属性覆盖。 - 上述两种全局locals,不仅可以在页面模板中使用,也可以在js代码中使用。
三、locals中附加的系统变量
settings : {
env:"development"
etag:"weak"
jsonp callback name:"callback"
port:8222
query parser:"extended"
subdomain offset:2
trust proxy:false
view engine:"ejs"
views:"/Users/xxx/yyy/zzz"
x-powered-by:true
}
参考链接:
- https://www.cnblogs.com/xxcanghai/p/6422640.html
免责申明:本站发布的内容(图片、视频和文字)以转载和分享为主,文章观点不代表本站立场,如涉及侵权请联系站长邮箱:xbc-online@qq.com进行反馈,一经查实,将立刻删除涉嫌侵权内容。