日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

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

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

瀏覽:203日期: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
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
91免费精品| 亚洲欧洲美洲av| 中文字幕在线高清| 麻豆国产精品视频| 欧美日韩视频一区二区三区| 欧美1区二区| 国产精品二区影院| 国产高清视频一区二区| 国产乱人伦精品一区| 欧美天堂一区| 爽好多水快深点欧美视频| 六月丁香综合| 日韩成人午夜精品| 久久激情五月激情| 日本三级亚洲精品| 国产欧美日韩一级| 国产一区二区三区黄网站| 国产suv精品一区二区四区视频| 精品国产乱码| 国产精品腿扒开做爽爽爽挤奶网站| 久久久国产精品网站| 欧美日韩国产精品一区二区亚洲| 国产欧美另类| 免费一级欧美在线观看视频| 97久久中文字幕| 国产精品中文字幕亚洲欧美| 国产精品xvideos88| 久久香蕉网站| 影视先锋久久| 亚洲人成网77777色在线播放| 国产欧美一区二区三区精品观看| 国产精品亚洲欧美一级在线| 黄色aa久久| 国产精品女主播一区二区三区| 久久久亚洲一区| 久久大逼视频| 美女精品久久| 在线亚洲精品| 91日韩在线| 欧美亚洲福利| 午夜精品亚洲| 捆绑调教日本一区二区三区| 日精品一区二区三区| 91精品国产成人观看| 日韩成人av影视| 九九综合在线| 国产第一亚洲| 国产探花在线精品| 亚洲一区成人| 国产精品男女| 另类国产ts人妖高潮视频| 另类专区亚洲| 欧美日韩一区二区国产| 99视频一区| 日韩不卡免费高清视频| 麻豆免费精品视频| 久久国产麻豆精品| 日韩影院免费视频| 亚洲欧美日韩高清在线| 成人片免费看| 麻豆成人在线观看| 亚洲精品影视| 中文字幕日韩亚洲| 欧美资源在线| 亚洲一本视频| 99视频精品全国免费| 日韩欧美国产精品综合嫩v| 久久99国产精品视频| 免费在线播放第一区高清av| 国产欧美日韩在线一区二区| 日韩欧乱色一区二区三区在线| 欧美综合二区| 亚洲精品伦理| 日本久久一区| 国产乱人伦丫前精品视频| 国产剧情一区| 红杏一区二区三区| av在线最新| 久久一区二区三区电影| 五月天久久网站| 亚洲二区精品| 丝瓜av网站精品一区二区 | 日韩精品久久理论片| 日韩中文一区二区| 国产精品伦一区二区| 国产不卡一区| 黑丝一区二区三区| 色狠狠一区二区三区| 欧美xxxx性| 亚洲一本视频| 欧美一区二区三区久久精品| 精品午夜久久| 免费日韩av片| 国产精品主播| 亚洲五月婷婷| 欧美在线91| 在线日韩视频| 国产欧美一区二区三区精品观看| 国产成人免费av一区二区午夜| 好看的av在线不卡观看| 国产日韩中文在线中文字幕| 在线亚洲人成| 欧美日韩a区| 激情欧美国产欧美| 国产精品夜夜夜| 久久电影一区| 久久精品导航| 麻豆91小视频| 怡红院精品视频在线观看极品| 久久99影视| 婷婷精品在线| 国产日韩综合| 久久精品观看| 精品久久久久中文字幕小说| 亚洲精品大片| 亚洲综合三区| 久久狠狠婷婷| 国产精品tv| 日本在线观看不卡视频| 久久在线视频免费观看| 精品视频91| 牛牛精品成人免费视频| 亚洲精品在线二区| 丝袜美腿一区| 福利一区二区免费视频 | 国产欧美日韩在线观看视频| 亚洲综合三区| 亚洲a在线视频| 日韩免费视频| 精品在线网站观看| 亚洲精品精选| 亚洲精品美女91| 婷婷成人av| 日本午夜精品久久久久| 亚洲青青久久| 香蕉成人久久| 亚洲欧美日韩在线观看a三区| 欧美日韩国产一区二区三区不卡| 国产日韩电影| 成人久久一区| 五月婷婷亚洲| 日韩专区在线视频| 亚洲婷婷丁香| 国产精品亚洲成在人线| 国产欧美日韩精品一区二区免费| 啪啪亚洲精品| 久久麻豆视频| zzzwww在线看片免费| 日韩免费看片| 国产美女精品| 亚洲综合五月| 91精品一区二区三区综合| 日韩久久精品| 国产一区二区三区四区大秀| 成人污污视频| 亚洲精品91| 久久成人精品| 国产欧美日韩影院| 日本久久综合| 亚洲欧美日韩国产一区二区| 日韩国产在线观看一区| 国产伊人久久| 美女精品网站| 久久影视三级福利片| 午夜久久99| 69堂免费精品视频在线播放| 久草精品视频| 最新国产精品视频| 国产精品二区不卡| 视频一区在线播放| 国产一区调教| 日本vs亚洲vs韩国一区三区二区| 精品女同一区二区三区在线观看| 91久久午夜| 中文在线а√天堂| 奇米777国产一区国产二区| 久久精品成人| 精品99在线| 亚洲女同中文字幕| 欧美日韩91| 99久久99视频只有精品| 日韩福利视频网| av一区二区高清| 超碰99在线| 国产精品网站在线看| 久久亚洲色图| 久久久一本精品| 麻豆国产一区| 日韩黄色av| 亚洲丝袜啪啪| 九一精品国产| 国产亚洲一区二区手机在线观看| 欧美日韩一视频区二区| 影音先锋国产精品| 日韩国产一区二区| 国产一级成人av| 伊人久久大香线蕉av超碰演员| 四虎成人av| 国产欧美一区二区三区精品酒店| 国产精品白丝久久av网站|