最近在使用express框架中的ejs頁面模板趟了些許坑,僅以本文記錄總結。
本文簡述的均為ejs頁面模板。
ejs由是在node層呼叫response的render方法渲染出來的:
index.js:
var renderdata = ;
resp.render("/aaa/bbb/ccc", renderdata);
如上例,在ejs頁面中就可以直接使用變數a:
index.ejs:
<%= a %>
在ejs頁面中使用行內模板js**來定義變數:
index.ejs:
<% var a = 1; %>
還可以在ejs頁面行內js**中給locals物件新增屬性定義變數:
index.ejs:
<% locals.a = 1; %>
index.ejs:
<%= a %>
index.ejs:
<%= locals.a %>
使用方法1定義的變數(即在nodejs中定義),可以使用這兩種呼叫方法。
使用方法2定義的變數(即頁面內var定義),只能使用第一種呼叫方法,即頁面內直接寫變數名使用
使用方法3定義的變數(即頁面內locals定義),可以使用這兩種呼叫方法。
其他區別:使用在nodejs中和頁面locals中定義方法定義的變數,可以使用對locals
物件遍歷,拿到所有使用者定義的變數。而使用頁面內var
定義的變數,不能通過遍歷locals來獲取,也就是不知道使用者新建立了哪些變數。
結論:如在頁面模板中,盡可能使用locals.***
的方式來定義變數,這樣定義的變數的通用性最高。
settings :
locals是express框架中提供的變數,用於在模板中定義,呼叫各種變數,同時也支援全域性變數,可以跨頁面在各個模板中均可呼叫訪問。
可以在任何ejs頁面中可以使用<%= config %>
變數。
這個的resp是指express的use中介軟體的response物件:
可以通過對resp.locals.***
設定值來實現在當前響應中
resp.locals["uid"] = "***";
resp.locals
是響應範圍內的全域性資料,使用與在對某乙個response處理的各個階段共享的資料。適用於放置一些使用者配置型別的資料,如授權資訊,id等。
上述兩種全域性locals,不僅可以在頁面模板中使用,也可以在js**中使用。
有關resp.locals
的詳細資訊:
Express框架中如何引用ejs模板引擎
1.如何在專案中安裝ejs模板引擎 express t ejs microblog 執行這個命令後繼續執行 cd microblog npm install 安裝專案的依賴屬性 發現安裝的模板引擎是jade,而不是ejs。原因是現在的版本已經沒有 t這個命令了,改為 express e microb...
Express中的身份認證
由於 cookie 是儲存在瀏覽器中的,而且瀏覽器也提供了讀寫 cookie 的 api,因此 cookie 很容易被偽造,不具有安全 性。因此不建議伺服器將重要的隱私資料,通過 cookie 的形式傳送給瀏覽器。注意 千萬不要使用 cookie 儲存重要且隱私的資料!比如使用者的身份資訊 密碼等。...
express在windows平台下的安裝
第一部分 安裝express 第一步 執行 npm install g express generator note 必須安裝這個,不然建立express專案的時候會提示express命令沒有找到 第二步 執行 npm install g express 第三步 執行 express v note ...