成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁技術文章
文章詳情頁

express框架通過ejs模板渲染輸出頁面實例分析

瀏覽:145日期:2022-06-09 15:29:24

1、前言

  上一節的get請求中,處理函數通過res.send返回了一段html代碼,這讓我們很興奮。我們終于可以給用戶返回html頁面了。
  當時例子是這么寫的,只要在send中傳入一些html格式的字符串即可。

// get routerrouter.get("/", function(req, res, next) {    res.send("<p>這是get請求/system返回的資源</p>")});

  那我問個問題,如果我想返回給用戶的是一張學生的成績信息怎么辦?其實可以這樣寫:

router.get("/", function(req, res, next) {    res.send("<div>2004年高考成績查詢(張三)</div><table><tr><td>1</td><td>語文</td><td>135</td></tr><tr><td>2</td><td>數學</td><td>131</td></tr><tr><td>3</td><td>英語</td><td>96</td></tr><tr><td>4</td><td>理科綜合</td><td>243</td></tr></table>")});

  這樣也是沒啥毛病吧!但最大的問題來了,一般情況數據都是動態的從數據庫獲取或計算得來的,在輸出到頁面時字符串的拼接需要通過字符串(如html標簽)和變量組成的。但這樣的拼接工作相當的費勁而且容易出錯,出錯后有時候也不容易排查。
  繞了這么久,終于可以引出本文的主題了——ejs模板。目前,我先只能這么給大家解釋ejs模板是個什么東東吧:

  1. 它的內容是以html標簽為基礎的,只不過加入了一些占位符(如${name})、簡單ejs邏輯(如<% if(…) { %> 等)
  2. 它的后綴名可以定義為.html,但初期請各位記住它的文件后綴名就是.ejs吧
  3. 簡單的json數據 和 ejs模板文件,在res.render方法執行后,就能將數據套入到模板中,完成動態網頁的輸出。

  文字描述內容就到這里,后邊的小節基本上是以代碼+代碼注釋進行說明,應該是更加容易理解了。

2、創建ejs模板文件

  在views目錄下創建文件,命名為score.ejs,代碼如下:

<!DOCTYPE html><html>  <head>    <title>成績單</title>    <link rel="stylesheet" href="/stylesheets/style.css" />  </head>  <body>    <div><%= year %>年高考成績查詢(張三)</div>    <table><% scores.forEach(function(item,index){ %>    <tr><td><%= index %></td><td><%=item.course %></td><td><%=item.score %></td></tr><% }); %>    </table>  </body></html>

3、修改router文件,通過模板輸出響應內容

  注意,我說的router文件,就是上篇文章中說的system.js哈。找到router.get部分,修改之前是這樣的:

router.get("/", function(req, res, next) {    res.send("<p>這是get請求/system返回的資源</p>")});

修改之后是:

router.get("/", function(req, res, next) {    //準備好的數據,真實的情形是從數據庫中得來的    var data = {year:2004,scores:[    {course:"語文",score: 135    },    {course:"數學",score:131    },    {course:"英語",score:96    },    {course:"理科綜合",score:243    }]    };    //通過模板和數據渲染頁面    res.render("score", data);});

4、就這么簡單,啟動服務,驗證

  預期的結果如下,你搞成功了嗎?

5、補充說明

  是不是覺得成功來得很容易?
  其實不然,你的成功來自于最初你使用了express-generator腳手架,還記得我在快速搭建Express開發系統 提到的命令:

npx express-generator --view ejs

嗎?它為我們做了多工作,具體表現在以下方面(看圖):

  這兩句分別為我們指定了模板文件存放的路徑,和指定ejs為模板引擎。

6、寫在最后

  其實ejs模板文件中的語法是非常復雜的,例如條件、循環、html富文本輸出……等,建議需要深入研究的同學可以通過這個鏈接去了解一下。
  在下一篇文章中,我會將本節的表格美化一下,加上一些bootstrap樣式。因為我在最初前后端同時開發時,也遇到過一些小問題,所以我想是值得一講的。ok,就到這里,期待下次見。

補充:express.render渲染ejs顯示源碼的問題解決方法

筆者在測試express框架的時候遇到的ejs顯示源碼的問題,檢查之后才發現在設置response的head的時候,在app.all('*', function(req, res, next)中加了一句res.header("Content-Type", "application/json;charset=utf-8");,將其注釋掉,重啟nodejs服務器,輸入路由后在瀏覽器按快捷鍵Ctrl+F5即可。

標簽: JavaScript
相關文章:
成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
韩国午夜理伦三级不卡影院| 国产99久久久久久免费看农村| 国产成人免费高清| 国产精品日韩精品欧美精品| 国产精品高潮呻吟久久| 不卡视频在线观看| 日韩亚洲欧美高清| 久久丁香综合五月国产三级网站| 亚洲第一黄色| 国产精品国产三级国产专播品爱网| 91在线精品秘密一区二区| 日韩欧美中文字幕精品| 国产成人在线免费| 777久久久精品| 另类小说综合欧美亚洲| 色香色香欲天天天影视综合网| 亚洲六月丁香色婷婷综合久久 | 欧美日韩一区小说| 日本伊人色综合网| 91久久一区二区| 蜜臀99久久精品久久久久久软件| 欧美综合天天夜夜久久| 免费一区二区视频| 欧美羞羞免费网站| 精品一区二区三区不卡| 在线不卡欧美精品一区二区三区| 狠狠色丁香久久婷婷综| 欧美乱妇20p| 国产成人激情av| 日韩午夜在线观看视频| 国产suv精品一区二区6| 欧美成人高清电影在线| 99国产麻豆精品| 欧美韩日一区二区三区四区| 欧美日韩三区四区| 国产精品久久久久婷婷| 亚洲国产精品一区在线观看不卡 | 好吊色欧美一区二区三区视频| 中文字幕一区二区三区视频| 亚洲三级色网| 午夜精品一区二区三区免费视频| 色偷偷一区二区三区| 久久se这里有精品| 日韩一区二区三免费高清| 不卡av电影在线播放| 国产亚洲成aⅴ人片在线观看| 色综合久久中文综合久久牛| 中文字幕亚洲在| 亚洲综合好骚| 奇米亚洲午夜久久精品| 91精品国产全国免费观看| 不卡av电影在线播放| ●精品国产综合乱码久久久久| aa国产精品| 日韩有码一区二区三区| 欧美一区二区三级| 欧美在线高清| 一区二区免费在线播放| 欧美性生活大片视频| 成人黄动漫网站免费app| 国产精品女主播在线观看| 国产日韩1区| 美女网站视频久久| 精品国产91洋老外米糕| 国内揄拍国内精品久久| 亚洲va在线va天堂| 884aa四虎影成人精品一区| 欧美+日本+国产+在线a∨观看| 一区二区理论电影在线观看| 欧美剧情片在线观看| 91香蕉国产在线观看软件| 伊人性伊人情综合网| 欧美三级中文字幕| 91麻豆免费视频| 亚洲午夜成aⅴ人片| 在线成人高清不卡| 欧美日韩天堂| 午夜日韩在线观看| 日韩欧美一卡二卡| 亚洲美女少妇无套啪啪呻吟| 久久99国产精品久久99| 国产偷国产偷精品高清尤物| 一区二区欧美日韩| 国产精品中文欧美| 亚洲视频在线一区观看| 欧美日韩午夜影院| 狠狠色狠狠色综合人人| 麻豆精品在线观看| 久久久久国产精品免费免费搜索| 亚洲永久字幕| www.欧美色图| 五月婷婷色综合| 精品国产乱码久久久久久浪潮| 国产日本精品| 成人三级伦理片| 亚洲影院久久精品| 精品国产乱码久久久久久闺蜜| 亚洲一区3d动漫同人无遮挡| 国产成人亚洲综合a∨婷婷| 一区二区三区在线不卡| 日韩精品中文字幕在线不卡尤物 | jlzzjlzz亚洲日本少妇| 亚洲成人一二三| 久久久噜噜噜久久中文字幕色伊伊| 一区二区国产精品| 丁香亚洲综合激情啪啪综合| 亚洲一区中文日韩| 精品日韩在线观看| 色婷婷综合久久| 国产综合网站| 国产suv一区二区三区88区| 亚洲成a人片在线观看中文| 国产日韩精品视频一区| 欧美日韩精品一区二区三区蜜桃| 亚洲国产精品视频一区| 粉嫩av一区二区三区粉嫩| 亚洲18影院在线观看| 国产精品色婷婷| 欧美一二区视频| 亚洲一区欧美激情| 91免费看片在线观看| 麻豆国产精品一区二区三区| 亚洲精品一二三| 日韩三级在线免费观看| 在线视频一区二区三区| 亚洲裸体俱乐部裸体舞表演av| 91在线观看视频| 国产一区二区三区不卡在线观看 | **欧美大码日韩| 欧美成人aa大片| 在线看日本不卡| av成人毛片| 91在线视频播放地址| 国产精品996| 奇米色一区二区三区四区| 一区二区三国产精华液| 亚洲国产精品v| 欧美成人一区二区三区| 欧美色图免费看| 老司机午夜精品视频| 亚洲视频www| 国产一区二区三区四区hd| av影院午夜一区| 国产精品影视在线观看| 琪琪久久久久日韩精品| 亚洲国产精品一区二区www在线| 中文字幕在线视频一区| 久久嫩草精品久久久久| 日韩欧美在线1卡| 欧美日韩一区二区三区四区| 免费久久99精品国产自在现线| 亚洲国产高清一区| 国产在线观看一区| 91麻豆123| 99在线精品视频| 粉嫩欧美一区二区三区高清影视| 毛片av一区二区| 日韩av成人高清| 亚洲成av人片在线观看| 亚洲精品视频自拍| 中文字幕一区二区三区四区| 欧美韩国一区二区| 久久久精品中文字幕麻豆发布| 欧美一区二区二区| 欧美精品 日韩| 欧美日韩国产综合久久| 欧美性视频一区二区三区| 91福利小视频| 色噜噜久久综合| 欧洲视频一区二区| 色哟哟在线观看一区二区三区| 国产一区二区三区奇米久涩| 在线观看欧美亚洲| 伊人成年综合电影网| 亚洲国产精品久久久久久女王| 在线视频观看日韩| 99视频在线精品国自产拍免费观看| 欧美一区激情视频在线观看| 91蝌蚪porny成人天涯| 欧美 日韩 国产一区二区在线视频| 亚洲欧美亚洲| 国产综合网站| 亚洲精品视频啊美女在线直播| 亚洲国产婷婷| 亚洲国产黄色| 中文在线一区| 免费国产一区二区| 久久久久久久久久久久久久一区 | 亚洲午夜一区| 99精品免费| 欧美电视剧免费观看| 久久影院视频免费| 亚洲国产精品传媒在线观看| 亚洲天天做日日做天天谢日日欢| 亚洲精品视频在线看| 午夜精品福利久久久| 日本不卡的三区四区五区| 麻豆精品视频在线观看| 国产麻豆精品在线观看| 高清久久久久久|