精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

入門指南:Node/JavaScript中的模板引擎

開發(fā) 前端
在本文中,我們將介紹如何用Node.js和Express來使用 Handlebars 模板引擎。還會介紹什么是模板引擎,以及如何使用把 Handlebars 建服務(wù)器端渲染(SSR) web應(yīng)用程序。

[[347065]]

簡介
在本文中,我們將介紹如何用Node.js和Express來使用 Handlebars 模板引擎。還會介紹什么是模板引擎,以及如何使用把 Handlebars 建服務(wù)器端渲染(SSR) web應(yīng)用程序。

我們還將討論如何使用 Express.js 框架配置 Handlebars ,以及如何使用內(nèi)置helpers創(chuàng)建動態(tài)頁面。最后,我們將了解如何在需要時開發(fā)自定義helper 。

什么是模板引擎
早在上世紀(jì)90年代,當(dāng)互聯(lián)網(wǎng)出現(xiàn)時,它主要用于科學(xué)目的,比如發(fā)表研究論文,以及作為大學(xué)和科學(xué)家之間的溝通渠道。那時的大多數(shù)網(wǎng)頁都是靜態(tài)的。靜態(tài)web頁面對每個用戶都是相同的,不會根據(jù)每個用戶而改變,如果要更改頁面上的任何內(nèi)容,都必須手動完成。

在現(xiàn)代世界中,事物的互動性更強(qiáng),并且為每個用戶量身定制。今天,幾乎每個人都能訪問互聯(lián)網(wǎng)。現(xiàn)在的大多數(shù)web應(yīng)用程序都是動態(tài)的。例如,在一些購物網(wǎng)站上,不同用戶登錄的界面,展示是不一樣的,所謂的 千人千面。對于每個人來說,頁面將遵循相同的模板(即上面有用戶名的連續(xù)發(fā)布),但是內(nèi)容將是不同的 。

模板引擎的工作內(nèi)容:定義展示內(nèi)容模板,然后根據(jù)當(dāng)前用戶和對數(shù)據(jù)庫的查詢,用接收到的內(nèi)容填充模板。

我們可以在后端和前端使用模板引擎。如果我們在后端使用模板引擎來生成HTML,這種方式叫做服務(wù)器端渲染(SSR) 。

Handlebars
Handlebars 在后端和前端模板中都很流行。例如,流行的前端框架Ember就是使用Handlebars作為模板引擎。

Handlebars 是Mustache模板語言的擴(kuò)展,Mustache 模板語言主要專注于簡單性和最小的模板。

在 Node.js 中使用 Handlebars
首先,創(chuàng)建一個空文件夾,然后打開終端,然后運(yùn)行npm init -y以默認(rèn)配置建一個空的 Node.js 項目。

開始之前,我們需要安裝所需的Node.js庫。通過運(yùn)行以下命令來安裝express和express-handlebars模塊:

npm install --save express express-handlebars

**注意:**在服務(wù)器端使用 Handlebars 時,你可能會使用一個像express-handlebars這樣的幫助模塊,它將Handlebars與web框架集成在一起。在本文中,我們主要關(guān)注模板語法,這也是我們使用express-handlebars的原因,但是如果你自己處理模板編譯和渲染,還需要看 compilation API reference 對應(yīng)的文檔說明 。

然后,重新創(chuàng)建默認(rèn)的 Handlebars 目錄結(jié)構(gòu)。views 文件夾包含所有Handlebars 手模板:

  1. ├── app.js 
  2. └── views 
  3.     ├── home.hbs 
  4.     └── layouts 
  5.         └── main.hbs 

views文件夾內(nèi)的layouts文件夾將包含布局或模板包裝器。這些布局將包含模板之間共享的HTML結(jié)構(gòu),樣式表和腳本。

main.hbs文件是主布局,home.hbs文件是我們要構(gòu)建的示例Handlebars模板。

在我們的示例中,我們使用一個腳本來保持簡單性。首先,在app.js文件中導(dǎo)入所需的庫:

  1. const express = require('express'); 
  2. const exphbs = require('express-handlebars'); 

然后,創(chuàng)建一個Express app

  1. const app = express(); 

現(xiàn)在,我們可以配置express-handlebars作為我們的視圖引擎:

  1. const express = require('express'); 
  2. const exphbs = require('express-handlebars'); 
  3.  
  4.  
  5. const app = express(); 
  6.  
  7. app.engine('hbs', exphbs({ 
  8.   defaultLayout: 'main'
  9.   extname: '.hbs' 
  10. })) 
  11.  
  12. app.set('view engine''hbs'); 

默認(rèn)情況下,Handlebars 模板的擴(kuò)展名是.handlebars。但是在這里的設(shè)置中,我們通過extname標(biāo)志將其更改為.hbs,因為它更短。

接著,在main.hbs布局添加Bootstrap腳本和樣式:

在home.hb添加如下內(nèi)容:

  1. <h1>Hello World from Handlebars</h1> 

在 app.js 中添加對應(yīng)的路由配置:

  1. app.get('/', (req, res) => { 
  2.     res.render('home'); 
  3. }); 

然后,添加如果監(jiān)聽的端口號:

  1. app.listen(3000, () => { 
  2.     console.log('The web server has started on port 3000'); 
  3. }); 

這樣就可以在控制臺中運(yùn)行node app.js啟動應(yīng)用程序。

但是我們也可以選擇使用諸如nodemon之類的工具。使用nodemon,我們在改代碼時不需要每次都要重新啟動服務(wù)器,nodemon會自動刷新服務(wù)器。

盤它:

  1. npm i -g nodemon 

安裝后,運(yùn)行:

  1. nodemon app.js 

在瀏覽器中打開 http://localhost:3000/:

Handlebars 更多功能
為了展示一些Handlebars功能,我們將構(gòu)建一個社交媒體類的網(wǎng)站。這里我們用一個簡單的數(shù)組來模擬數(shù)據(jù)庫。

將home.hbs內(nèi)容更新成如下:

  1. <nav class="navbar navbar-dark bg-dark"
  2.     <a class="navbar-brand" href="#">Book Face</a> 
  3. </nav> 
  4.  
  5. <div class="posts"
  6.     <div class="row justify-content-center"
  7.         <div class="col-lg-7" style="margin-top: 50px;"
  8.             <div class="card"
  9.  
  10.                 <img src="https://picsum.photos/500/500" 
  11.                     class="card-img-top" alt="..."
  12.                 <div class="card-body"
  13.                     <h5 class="card-title">此文章由 前端小智 發(fā)布</h5> 
  14.  
  15.                     <ul class="list-group"
  16.                         <li class="list-group-item">期待你們的留言/li> 
  17.                         <li class="list-group-item">期待你們的留言</li> 
  18.                     </ul> 
  19.                 </div> 
  20.             </div> 
  21.         </div> 
  22.     </div> 
  23. </div> 

上面我們添加了一個 navbar 和一個帖子的展示內(nèi)容 card,運(yùn)行效果如下:

向模板傳遞參數(shù)
現(xiàn)在,讓我們從頁面本身中刪除這些硬編碼的值,這些值由路由傳遞進(jìn)來, 在 app.js 中修改如下內(nèi)容 :

  1. app.get('/'function (req, res) { 
  2.     res.render('home', { 
  3.         post: { 
  4.             author: '小智'
  5.             image: 'https://picsum.photos/500/500'
  6.             comments: [] 
  7.         } 
  8.     }); 
  9. }); 

post 對象包含author,image和comments等字段。我們可以在 Handlebars模板使用{{post}}來引用這些值:

  1. <nav class="navbar navbar-dark bg-dark"
  2.     <a class="navbar-brand" href="#">Book Face</a> 
  3. </nav> 
  4.  
  5. <div class="posts"
  6.     <div class="row justify-content-center"
  7.         <div class="col-lg-7" style="margin-top: 50px;"
  8.             <div class="card"
  9.  
  10.                 <img src="https://picsum.photos/500/500" 
  11.                     class="card-img-top" alt="..."
  12.                 <div class="card-body"
  13.                     <h5 class="card-title">此文章由 {{post.author}} 發(fā)布</h5> 
  14.  
  15.                     <ul class="list-group"
  16.                         <li class="list-group-item">期待你們的留言/li> 
  17.                         <li class="list-group-item">期待你們的留言</li> 
  18.                     </ul> 
  19.                 </div> 
  20.             </div> 
  21.         </div> 
  22.     </div> 
  23. </div> 

效果如下:

使用條件
由于這里需要一些邏輯判斷,即 comments 沒數(shù)據(jù)不顯示,我們看看如何在Handlebars 模板中使用條件:

  1. <nav class="navbar navbar-dark bg-dark"
  2.     <a class="navbar-brand" href="#">Book Face</a> 
  3. </nav> 
  4.  
  5. <div class="posts"
  6.     <div class="row justify-content-center"
  7.         <div class="col-lg-7" style="margin-top: 50px;"
  8.             <div class="card"
  9.  
  10.                 <img src="https://picsum.photos/500/500" 
  11.                     class="card-img-top" alt="..."
  12.                 <div class="card-body"
  13.                     <h5 class="card-title">此文章由 {{post.author}} 發(fā)布</h5> 
  14.                     {{#if post.comments}} 
  15.                     <ul class="list-group"
  16.                     </ul> 
  17.                     {{else}} 
  18.                     <ul class="list-group"
  19.                         <li class="list-group-item">期待你們的留言</li> 
  20.                     </ul> 
  21.                     {{/if}} 
  22.                 </div> 
  23.             </div> 
  24.         </div> 
  25.     </div> 
  26. </div> 

這里我們的 comments 為空,所以顯示了 期待你們的留言。

#if是把 Handlebars 的內(nèi)置幫助器。如果if語句返回true,則將渲染#if塊內(nèi)部的塊。如果返回false,undefined,null,"",0或[],則不會渲染該塊。

#if僅接受一個條件,并且不能使用 JS 比較語法(===)。如果需要使用多個條件或其他語法,則可以在代碼中創(chuàng)建一個變量,然后將其傳遞給模板。另外,你可以定義自己的 helper ,我們將在上一節(jié)中進(jìn)行操作。

使用循環(huán)
由于帖子可以包含多個評論,因此我們需要一個循環(huán)渲染它們。首先,我們先添加一些數(shù)據(jù):

  1. app.get('/'function (req, res) { 
  2.   res.render('home', { 
  3.       post: { 
  4.           author: '小智'
  5.           image: 'https://picsum.photos/500/500'
  6.           comments: [ 
  7.             '前端小智終身學(xué)習(xí)者'
  8.             '前端小智持續(xù)分享者'
  9.             '雖然沒啥流量,但也希望你也能堅持分享下去,幫助更多的初學(xué)者 ' 
  10.           ] 
  11.       } 
  12.   }); 
  13. }); 

現(xiàn)在,在我們的模板中,使用#each循環(huán)遍歷它們:

  1. <nav class="navbar navbar-dark bg-dark"
  2.     <a class="navbar-brand" href="#">Book Face</a> 
  3. </nav> 
  4.  
  5. <div class="posts"
  6.     <div class="row justify-content-center"
  7.         <div class="col-lg-7" style="margin-top: 50px;"
  8.             <div class="card"
  9.  
  10.                 <img src="https://picsum.photos/500/500" 
  11.                     class="card-img-top" alt="..."
  12.                 <div class="card-body"
  13.                     <h5 class="card-title">此文章由 {{post.author}} 發(fā)布</h5> 
  14.                     {{#if post.comments}} 
  15.                     <ul class="list-group"
  16.                       {{#each post.comments}} 
  17.                       <li class="list-group-item">{{this}}</li> 
  18.                       {{/each}} 
  19.                     </ul> 
  20.                     {{else}} 
  21.                     <ul class="list-group"
  22.                         <li class="list-group-item">期待你們的留言</li> 
  23.                     </ul> 
  24.                     {{/if}} 
  25.                 </div> 
  26.             </div> 
  27.         </div> 
  28.     </div> 
  29. </div> 

在#each循環(huán)中,可以使用this來引用當(dāng)前迭代中的元素。在我們的示例中,它引用了一個隨后被渲染的字符串。

如果posts是一個對象數(shù)組,你也可以訪問該對象的任何屬性。例如,如果有一個人員數(shù)組,你可以簡單地使用this.name來訪問name字段。

現(xiàn)在,為我們的 posts 添加多個數(shù)據(jù):

  1. app.get('/'function (req, res) { 
  2.   res.render('home', { 
  3.       posts: [ 
  4.         { 
  5.           author: '小智'
  6.           image: 'https://picsum.photos/500/500'
  7.           comments: [ 
  8.             '前端小智終身學(xué)習(xí)者'
  9.             '前端小智持續(xù)分享者'
  10.             '雖然沒啥流量,但也希望你也能堅持分享下去,幫助更多的初學(xué)者 ' 
  11.           ] 
  12.         }, 
  13.         { 
  14.           author: '前端大智'
  15.           image: 'https://picsum.photos/500/500?2'
  16.           comments: [] 
  17.         } 
  18.       ] 
  19.   }); 
  20. }); 

然后,使用#each來遍歷 posts:

  1. <div class="posts"
  2.     <div class="row justify-content-center"
  3.       {{#each posts}} 
  4.         <div class="col-lg-7" style="margin-top: 50px;"
  5.             <div class="card"
  6.                 <img src="{{this.image}}" class="card-img-top" alt="..."
  7.                 <div class="card-body"
  8.                     <h5 class="card-title">此文章由 {{post.author}} 發(fā)布</h5> 
  9.                     {{#if this.comments}} 
  10.                     <ul class="list-group"
  11.                       {{#each this.comments}} 
  12.                       <li class="list-group-item">{{this}}</li> 
  13.                       {{/each}} 
  14.                     </ul> 
  15.                     {{else}} 
  16.                     <ul class="list-group"
  17.                         <li class="list-group-item">期待你們的留言</li> 
  18.                     </ul> 
  19.                     {{/if}} 
  20.                 </div> 
  21.             </div> 
  22.         </div> 
  23.       {{/each}} 
  24.     </div> 
  25. </div> 

總結(jié)
在本文中,我們介紹了Handlebars的基礎(chǔ)知識,Handlebars 是Node.js 和前端JavaScript 的模板引擎。使用 Handlebars,我們可以創(chuàng)建在服務(wù)器端或客戶端渲染的動態(tài)網(wǎng)頁。使用 Handlebars 的條件,循環(huán),局部和自定義幫助器功能,我們的網(wǎng)頁將不僅僅是靜態(tài)HTML。

 

責(zé)任編輯:姜華 來源: 今日頭條
相關(guān)推薦

2017-01-04 15:22:57

TrimPath模板引擎

2021-10-22 08:29:14

JavaScript事件循環(huán)

2019-11-13 09:01:48

開源JavaScript模板引擎

2014-05-16 11:09:38

Handlebars模板引擎

2012-04-13 09:45:53

JavaScriptjQuery

2022-11-30 15:15:48

2010-09-08 15:13:09

Node節(jié)點Node屬性

2016-08-02 10:22:10

JS微軟Node

2015-12-08 11:39:59

JavaScript引擎指南

2014-05-12 10:21:41

JavaScript 模板引擎

2016-11-01 20:26:47

前端模板underscoreWeb

2017-03-15 08:43:29

JavaScript模板引擎

2019-11-13 08:50:46

GitHub代碼開發(fā)者

2017-03-20 17:59:19

JavaScript模板引擎

2020-05-11 09:54:33

JavaScript開發(fā)技術(shù)

2011-07-15 14:01:50

PHP模板引擎

2019-10-12 10:50:00

JavaScript編程語言代碼

2020-11-11 07:48:21

Node

2011-01-19 11:17:36

2011-09-08 10:21:50

Node.js
點贊
收藏

51CTO技術(shù)棧公眾號

牛夜精品久久久久久久| 日本不卡一区二区三区视频| 久久久久成人网站| 日韩啪啪网站| 欧美日韩国产综合一区二区| 一二三在线视频| 深夜影院在线观看| 久久国产成人午夜av影院| 欧美高清在线视频观看不卡| 美国黄色一级毛片| 国产精品777777在线播放| 午夜av电影一区| 中文字幕久久一区| 天堂在线中文资源| 国产精品影视在线| 国产精品69av| 日韩激情一区二区三区| 成人免费av| 日韩经典中文字幕在线观看| 三级黄色片免费看| se01亚洲视频| 亚洲国产视频a| 一本色道久久综合亚洲精品婷婷| 高h放荡受浪受bl| 九九**精品视频免费播放| 4p变态网欧美系列| 免费中文字幕视频| 久久久久久久久久久妇女| 亚洲欧美国产一区二区三区| 国产亚洲精品成人a| 婷婷久久综合九色综合99蜜桃| 欧美日韩在线另类| 欧美视频在线观看视频| 求av网址在线观看| 国产欧美一区二区精品久导航| 国产精品白丝jk白祙| av免费观看网址| 麻豆成人91精品二区三区| 热久久免费视频精品| 国产成人精品片| 在线国产精品一区| 欧美大成色www永久网站婷| 老司机精品免费视频| 国产午夜一区| 亚洲美女性视频| 中文字幕日韩三级片| aaa国产精品| 日韩欧美一级精品久久| 香蕉视频xxx| 亚洲精品黑牛一区二区三区| 欧美成人video| 国产乱淫av麻豆国产免费| 日韩亚洲精品在线观看| 欧美一区二区三区四区久久| theporn国产精品| 色综合久久久| 欧美另类变人与禽xxxxx| 最新天堂中文在线| 四虎国产精品免费久久5151| 在线不卡免费欧美| 91网址在线观看精品| 国产剧情一区二区在线观看| 日韩三级视频在线看| 四川一级毛毛片| 99re8这里有精品热视频免费| 日韩视频一区二区在线观看| 日韩av成人网| 精品三级在线观看视频| 亚洲欧美日韩国产成人| 免费观看av网站| 精品一区二区三区在线| 色婷婷**av毛片一区| 神马久久精品综合| 欧美激情四色| 91精品国产电影| 成人a v视频| 理论电影国产精品| 成人自拍视频网站| 色播色播色播色播色播在线| 国产喷白浆一区二区三区| 亚洲国产精品一区二区第一页| 日本三级视频在线播放| 亚洲一区二区三区在线播放| 欧美日韩黄色一级片| 成人自拍视频网| 欧美va在线播放| 久久丫精品国产亚洲av不卡| 99久久www免费| 久久久免费精品视频| 天堂网一区二区| 国产一区二区视频在线| 国产一区再线| 色的视频在线免费看| 一区二区三区在线视频免费| 91猫先生在线| 欧美日本三级| 亚洲日韩欧美视频| 亚洲成人生活片| 视频一区中文字幕国产| 亚洲在线一区二区| 免费一级毛片在线观看| 亚洲免费av观看| 久草精品在线播放| 亚洲一区二区三区免费| 国产香蕉精品视频一区二区三区| 国产大学生自拍| 日韩精品每日更新| 国产精品一区二区三区四区五区| 91在线观看| 五月天久久比比资源色| 精品国产乱码久久久久久1区二区| 久久久久久毛片免费看| 久久在线精品视频| 国产精品午夜一区二区| 99精品热视频| 国产午夜精品视频一区二区三区| 亚洲精品国产嫩草在线观看| 亚洲第一偷拍网| 黄页网站免费观看| 美女网站视频久久| 欧洲亚洲一区二区| 一二三四视频在线中文| 日韩一区二区中文字幕| 老司机精品免费视频| 日日摸夜夜添夜夜添国产精品| 国产chinese精品一区二区| 麻豆视频在线观看免费网站| 欧美在线影院一区二区| 深爱五月激情网| 亚洲欧洲日本一区二区三区| 91传媒免费看| 在线观看h网| 这里只有精品电影| 国产美女高潮视频| 美女任你摸久久| 日本一区二区三区免费观看| 毛片电影在线| 亚洲精品久久久久| 日韩女优在线观看| av一二三不卡影片| 日韩 欧美 视频| 亚洲网址在线观看| 色中色综合影院手机版在线观看| 国产精品高潮呻吟av| 国产精品乱人伦| 亚洲免费av一区| 97精品国产| 91精品综合久久久久久五月天| 生活片a∨在线观看| 在线播放亚洲一区| 欧美一区免费观看| 国产一区二区精品久久91| 在线国产精品网| 爱情电影网av一区二区| 久久国产精品电影| 精品久久久久成人码免费动漫| 亚洲欧美日韩精品久久久久| 91丨porny丨九色| 国内揄拍国内精品久久| 国产一区二区久久久| 国产在线观看www| 亚洲欧美日韩中文在线| 天天天天天天天干| 中文字幕色av一区二区三区| 一起草最新网址| 亚洲国产一区二区三区a毛片| 国产一区在线免费观看| 3d性欧美动漫精品xxxx软件| 中文字幕精品—区二区| 国产精品女人久久久| 夜夜精品浪潮av一区二区三区| 亚洲视频天天射| 鲁大师成人一区二区三区| 日韩免费电影一区二区| 色8久久久久| 欧美劲爆第一页| 日韩电影免费| 欧美精品色一区二区三区| 四虎地址8848| 国产精品18久久久久久久久久久久 | 亚洲人成网站777色婷婷| 综合久久中文字幕| 亚洲伦理在线精品| 99久久人妻精品免费二区| 久久久久久亚洲精品杨幂换脸| 日韩欧美精品在线不卡| 日韩精品一区二区三区中文字幕 | 一本一道无码中文字幕精品热| 欧美经典一区二区| 免费人成视频在线播放| 久久精品日产第一区二区 | 在线欧美福利| 亚洲福利av| 国产亚洲精品美女久久| 国产精品中文久久久久久久| 91桃色在线| yw.139尤物在线精品视频| 无码国产色欲xxxx视频| 欧美日韩国产综合一区二区三区| 天海翼一区二区| 国产精品久久久久一区二区三区| 99精品一区二区三区无码吞精| 日韩黄色在线观看| 欧美激情视频免费看| 欧美大片aaaa| 欧美日韩精品免费看| 最新国产一区二区| 国产精品麻豆va在线播放| 国产第一页在线| 日韩中文字幕视频在线| 日韩欧美电影在线观看| 欧美tickling挠脚心丨vk| 中文字幕一二三四| 动漫精品一区二区| 久久久久久国产精品视频| 国产精品欧美一区喷水| 播金莲一级淫片aaaaaaa| 成人综合婷婷国产精品久久| 午夜精品免费看| 琪琪一区二区三区| 欧美日韩在线不卡视频| 亚洲激情专区| 人妻激情另类乱人伦人妻| 欧美国产偷国产精品三区| 日本精品二区| 要久久电视剧全集免费| 成人综合色站| 97超碰成人| caoporn国产精品免费公开| 亚洲精品成a人ⅴ香蕉片| 国产精品毛片a∨一区二区三区|国 | 欧美特黄一级大片| 麻豆亚洲一区| 外国成人在线视频| 精品免费视频123区| 精品丝袜久久| 精品久久久久久中文字幕动漫 | 精品国产亚洲在线| 国产黄色av片| 日韩欧美一区中文| 国产免费高清av| 7799精品视频| 国产又粗又猛视频免费| 欧美美女bb生活片| 国产探花精品一区二区| 91精品国产黑色紧身裤美女| 亚洲香蕉在线视频| 欧美福利视频一区| 国产精品久久婷婷| 91精品一区二区三区久久久久久| 91在线观看喷潮| 日韩一区二区免费电影| 国产极品999| 精品久久久久久久久久久久包黑料 | 国产精品毛片久久久久久久久久99999999 | 天堂网av2018| 亚洲欧美色综合| 久久午夜无码鲁丝片| 五月综合激情婷婷六月色窝| 久久久午夜影院| 欧美中文字幕一区二区三区| 亚洲天堂一二三| 日韩一区二区三区精品视频 | 成人精品国产免费网站| 国产高清成人久久| 久久综合国产精品| 国产精品久久久久久成人| 亚洲色图清纯唯美| 九热这里只有精品| 色综合久久88色综合天天免费| 天天干,天天干| 在线观看91精品国产麻豆| 黄色av小说在线观看| 精品亚洲国产视频| 欧美jizzhd69巨大| 欧美极品少妇xxxxⅹ免费视频| 看黄在线观看| 成人av在线亚洲| 免费看成人人体视频| 日韩免费一区二区三区| 欧美 日韩 国产精品免费观看| 欧洲精品一区二区三区久久| 日韩电影在线观看电影| 91视频福利网| 99久久伊人网影院| 三级黄色片在线观看| 午夜电影一区二区| 92久久精品一区二区| 欧美精品一区二区三区蜜臀| 在线免费看黄网站| 国产做受高潮69| 日本一区二区三区中文字幕| 国产伦精品一区二区三区免费视频| 久久不卡国产精品一区二区| 国产香蕉一区二区三区| 久久国产精品久久久久久电车 | 欧美精品亚州精品| 欧洲亚洲两性| 成人欧美一区二区| 欧美一区二区三| 2022亚洲天堂| 国产成人午夜视频| 人人人妻人人澡人人爽欧美一区| 亚洲激情在线播放| 亚洲男人天堂网址| 亚洲电影在线看| 成年人网站在线| 国产精品福利小视频| 精品三级在线观看视频| 黄色网址在线免费看| 天堂成人免费av电影一区| 香蕉久久久久久av成人| 亚洲视频每日更新| 中文字幕av在线免费观看| 亚洲大胆人体av| 自拍亚洲图区| 成人激情视频网| 精品久久91| 美女福利视频在线| 成人18精品视频| 欧美成人精品一区二区免费看片| 欧美日韩一区二区三区在线| 日本私人网站在线观看| 97精品国产aⅴ7777| 一区二区亚洲视频| 中文字幕欧美日韩一区二区三区 | 国产精品入口夜色视频大尺度| 鲁大师精品99久久久| 国产精品69久久久| 国产精品一区专区| 国产免费无码一区二区视频| 91麻豆精品国产自产在线观看一区| 99re在线视频| 国产精品久久久久久久久久三级| 亚洲人和日本人hd| 日韩精品视频久久| 久久综合色之久久综合| 久久久精品福利| 亚洲精品自拍视频| 亚洲人体视频| 欧美亚洲另类在线一区二区三区| 国产视频一区三区| 超碰caoprom| 婷婷成人激情在线网| 天堂av在线资源| 欧亚精品在线观看| 国产一区二区精品久| 亚洲少妇久久久| 国产精品国产三级国产普通话99| 中文字幕91爱爱| 久久精品国产成人精品| 精品国产麻豆| 国产玉足脚交久久欧美| 成人永久免费视频| 日韩精品――中文字幕| 日韩的一区二区| 亚洲成人av观看| 综合视频在线观看| 国产丶欧美丶日本不卡视频| 亚洲精品在线观看av| 亚洲美女av黄| 日韩国产一二三区| 亚洲爆乳无码精品aaa片蜜桃| 国产99精品国产| 国产精品21p| 日韩视频一区在线| 日韩欧美中文在线观看| 蜜桃传媒一区二区三区| 久久精品亚洲麻豆av一区二区| 波多野结衣在线观看视频| 久久精品免费播放| av成人app永久免费| aaa毛片在线观看| 亚洲欧美综合色| 香蕉视频黄色片| 国产精品视频地址| 欧美精品国产一区二区| 特大黑人巨人吊xxxx| 欧美片网站yy| 国产激情在线播放| 亚洲啪啪av| 成人免费看黄yyy456| 婷婷激情五月综合| 九色成人免费视频| 国产一区二区三区电影在线观看| 中文字幕剧情在线观看| 欧美日韩综合视频| 免费在线看黄色| 免费影院在线观看一区| 国产在线精品一区二区夜色| 天天综合网入口| 久热精品视频在线| 亚洲盗摄视频| 亚洲精品一区二区18漫画| 一本大道久久a久久综合婷婷 | 人人爽久久涩噜噜噜网站| 91精品国产91久久久久久密臀| 日本丰满少妇裸体自慰 | 深夜影院在线观看| 91成人理论电影|