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

用 Express 和 AbsurdJS 做 Node.js 應用

開發(fā) 前端
在本教程中,我將會教你結合 Express 去使用 AbsurdJS。Express 是流行的 Node.js 框架,而 AbsurdJS 則比較新鮮,希望你看完后會發(fā)現(xiàn)它很有用。

當今有許多新技術吸引著越來越多的開發(fā)者,Node.js 便是其中之一。主要因為它是 JavaScript 驅(qū)動的,許多人都很感興趣。在本教程中,我將會教你結合 Express 去使用 AbsurdJS。Express 是流行的 Node.js 框架,而 AbsurdJS 則比較新鮮,希望你看完后會發(fā)現(xiàn)它很有用。

本文中出現(xiàn)的源碼都可以從這里下載。

簡介

正如我提到的,Express 很流行。因為它是最早的 Node.js 框架之一。它把所有瑣碎的事情都包辦了,比如路由選擇、參數(shù)解析、模板、向瀏覽器發(fā)送響應。它的庫基于 Connect 提供的中間件架構對原生的 Node.js 進行了較好的封裝。

AbsurdJS 一開始是一個 CSS 預處理器。目的是為 CSS 開發(fā)者帶來更好的靈活性。它接受純 JavaScript 代碼并轉(zhuǎn)換為 CSS。大家對它的反饋都比較積極,我也在努力繼續(xù)完善它。現(xiàn)在它不僅能預處理 CSS,還可以處理 HTML。它接受 JSON 和 YAML 并成功導出作客戶端使用。

步驟

為了使***做出的項目能跑起來,我們需要安裝 Node.js。只需打開 nodejs.org 并點擊大大的綠色“INSTALL”按鈕。下載并安裝完成后你就可以調(diào)用 Node.js 腳本,用npm(Node 的包管理器)安裝依賴包。

為你的項目新建一個文件夾,里面再新建一個空的“package.json”文件。包管理器會以這個文件為起點去安裝我們需要的包。我們只需兩個包,所以 json 文件應該是這個樣子:

  1. {  
  2.     "name""AbsurdJSAndExpress",  
  3.     "description""AbsurdJS + Express app",  
  4.     "version""0.0.1",  
  5.     "dependencies": {  
  6.         "express""3.4.4",  
  7.         "absurd""*" 
  8.     }  

當然,這里還有許多其它的參數(shù)可以配置,但為了方便舉例我們就先按上面的配置吧。打開終端,定位包含到 Package.json 的目錄,執(zhí)行:

  1. npm install 

會在當前目錄生成 node_modules 文件夾,并自動下載 Express 和 AbsurdJS。

運行服務器

有了 Express 你只需要簡單幾行代碼就可以運行一個 http 服務器。

  1. var express = require('express'),  
  2.     app = express();  
  3.    
  4. app.listen(3303);  
  5. console.log('Listening on port 3303'); 

保存以上代碼為 app.js 并運行:

  1. node app.js 

這時控制臺應該顯示 “Listening on port 3303”。瀏覽器打開 http://localhost:3303/ 會看到:

  1. Cannot GET / 

不用擔心,這很正常,因為我們還沒有添加路由。

添加路由

Express 提供了友好的 API 去定義 URL 路由。我們在這里簡單地添加一個,把下面的代碼貼到 app.js 中。

  1. app.get('/'function(req, res, next) {  
  2.     res.setHeader('Content-Type''text/html');  
  3.     res.send("application");  
  4. }); 

這里做了幾件事。.get 方法的***個參數(shù)定義了路徑;第二個參數(shù)是個方法,用來處理請求,它接受三個參數(shù) – request、response、next。這里的好處是我們可以傳入多個函數(shù),它們會一個接一個的被調(diào)用。我們需要做的只是執(zhí)行 next(),否者 next 方法不會被調(diào)用。比如:

  1. app.get(  
  2.     '/',   
  3.     function(req, res, next) {  
  4.         console.log("do some other stuff here");  
  5.         next();  
  6.     },  
  7.     function(req, res, next) {  
  8.         res.send("application");  
  9.     }  
  10. ); 

路由定義中通用的做法是添加一些可重用的任務作為中間件。比如說,我們有兩種 Content-Type, HTML 和 CSS。用下面的方法就顯得更加靈活。

  1. var setContentType = function(type) {  
  2.     return function(req, res, next) {  
  3.         res.setHeader('Content-Type''text/' + type);  
  4.         next();  
  5.     }  
  6. }  
  7. app.get('/', setContentType("html"), function(req, res, next) {  
  8.     res.send("application");  
  9. }); 

如果我們需要提供 CSS,只要用 setContentType(“css”) 即可。

提供 HTML

很多 Express 的教程和文章都會介紹一些模板引擎。通常是 Jade、Hogan 或者 Mustache。然而,如果用 AbsurdJS 我們不需要模板引擎。我們可以用純 JavaScript 編寫 HTML。更具體的說,是用 JavaScript 對象。我們先從實現(xiàn)著陸頁開始。新建文件夾 pages,在里面新建 landing.js 文件。我們在用 Node.js 所以文件里應該包含:

  1. module.exports = function(api) {  
  2.     // ...  

注意返回的函數(shù)接受 AbsurdJS API 的引用。這正是我們所要的。現(xiàn)在再加點 HTML:

  1. module.exports = function(api) {  
  2.     api.add({  
  3.         _:"<!DOCTYPE html>",  
  4.         html: {  
  5.             head: {  
  6.                 'meta[http-equiv="Content-Type" content="text/html; charset=utf-8"]': {},  
  7.                 'link[rel="stylesheet" type="text/css" href="styles.css"]': {}  
  8.             },  
  9.             body: {}  
  10.         }  
  11.     });  

“_” 屬性添加的字符串在編譯成HTML時不會被轉(zhuǎn)換;其它的屬性各定義了一個標簽。還可以用其它方法去定義標簽屬性,但我認為用上面的方式更好。這個想法是從 Sublime 的 Emmet 插件中獲得的。編譯完成后會生成:

  1. <!DOCTYPE html> 
  2. <html> 
  3.     <head> 
  4.         <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> 
  5.         <link rel="stylesheet" type="text/css" href="styles.css"/> 
  6.     </head> 
  7.     <body/> 
  8. </html> 

本次教程只有一個頁面,而在現(xiàn)實中你可能會在多個頁面中使用相同的HTML。此時更合理的做法是將這部分代碼移到外部的文件中,在需要的時候引用進來。當然,這里還可以使用可重復模板。創(chuàng)建文件 /pages/partials/layout.js :

  1. module.exports = function(title) {  
  2.     return {  
  3.         _:"<!DOCTYPE html>",  
  4.         html: {  
  5.             head: {  
  6.                 'meta[http-equiv="Content-Type" content="text/html; charset=utf-8"]': {},  
  7.                 'link[rel="stylesheet" type="text/css" href="styles.css"]': {},  
  8.                 title: title  
  9.             },  
  10.             body: {}  
  11.         }  
  12.     };  
  13. }; 

這里其實就是一個返回對象的函數(shù)。所以,之前的 landing.js 可以修改為:

  1. module.exports = function(api) {  
  2.     var layout = require("./partials/layout.js")("Home page");  
  3.     api.add(layout);  

可以看到,layout 模板接受 title 變量。這樣就可以動態(tài)地生成一部分內(nèi)容。

#p#

接下來是向 body 標簽添加內(nèi)容。非常簡單,因為所有內(nèi)容都是純 JavaScript 對象。

  1. module.exports = function(api) {  
  2.     var layout = require("./partials/layout.js")("Home page");  
  3.     layout.html.body = {  
  4.         h1: "Page content" 
  5.     }  
  6.     api.add(layout);  

生成的結果:

  1. <!DOCTYPE html> 
  2. <html> 
  3.     <head> 
  4.         <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> 
  5.         <link rel="stylesheet" type="text/css" href="styles.css"/> 
  6.         <title>Home page</title> 
  7.     </head> 
  8.     <body> 
  9.         <h1>Page content</h1> 
  10.     </body> 
  11. </html> 

本文的代碼看起來都很短、不完整,是因為全寫的話文章就太長了。接下來我只會介紹一下建立無序列表的思想,因為這里比較有意思。剩余的部分跟 layout 類似,就不再敖述。

下面就是生成無序列表的片段。<ul></ul>標簽:

  1. module.exports = function(data) {  
  2.     var html = { ul: [] };  
  3.     for(var i=0item=data[i]; i++) {  
  4.         html.ul.push({ li: item });  
  5.     }  
  6.     return html;  

這里只用了一個 ul 屬性定義一個對象。ul 其實就是一個數(shù)組,裝滿列表中的項。

  1. var list = require("./partials/list.js");  
  2. var link = require("./partials/link.js");  
  3. list([  
  4.     link("http://krasimir.github.io/absurd""Official library site"),  
  5.     link("https://github.com/krasimir/absurd""Official repository")  
  6. ]); 

link 也是片段,類似這樣子:

  1. module.exports = function(href, label) {  
  2.     return {   
  3.         a: { _attrs: { href: href }, _: label }  
  4.     }  

組合起來后就會生成:

  1. <ul> 
  2.     <li> 
  3.         <a href="http://krasimir.github.io/absurd"> 
  4.             Official library site  
  5.         </a> 
  6.     </li> 
  7.     <li> 
  8.         <a href="https://github.com/krasimir/absurd"> 
  9.             Official repository  
  10.         </a> 
  11.     </li> 
  12. </ul> 
現(xiàn)在,想象我們有一堆可以使用的片段。如果它們編寫得足夠靈活,只需創(chuàng)建一次就可以在項目之間傳遞了。AbsurdJS 是如此強大,只要我們擁有一堆足夠好的預定義集合,就可以快速、更具描述性地編寫 HTNL 標記。

***,當 HTML 已經(jīng)完成后,我們只需編譯并發(fā)送給用戶。于是,對 app.js 做小小的變動使得我們的應用響應正確的標記:

  1. var absurd = require("absurd");  
  2. var homePage = function(req, res, next) {  
  3.     absurd().morph("html").import(__dirname + "/pages/landing.js").compile(function(err, html) {  
  4.         res.send(html);  
  5.     });  
  6. }  
  7. app.get('/', setContentType("html"), homePage); 

提供 CSS

與 HTML 類型,先在 app.js 為 style.css 添加路由。

  1. var styles = function(req, res, next) {  
  2.     absurd().import(__dirname + "/styles/styles.js").compile(function(err, css) {  
  3.         res.send(css);  
  4.     });  
  5. }  
  6. app.get('/styles.css', setContentType("css"), styles); 
使用 JavaScript 定義 CSS。任何東西都可以放在分好的 Node.js 模塊中。讓我們創(chuàng)建 /styles/styles.js 并加入代碼:
  1. module.exports = function(api) {  
  2.     api.add({  
  3.         body: {  
  4.             width: "100%",  
  5.             height: "100%",  
  6.             margin: 0,  
  7.             padding: 0,  
  8.             fontSize: "16px",  
  9.             fontFamily: "Arial",  
  10.             lineHeight: "30px" 
  11.         }  
  12.     })  

一個簡單的 <body> 樣式控制。注意帶有破折號的屬性被改寫成駝峰式大小寫風格。否則不能創(chuàng)建有效對象,會得警告。

現(xiàn)在假設要控制 <h1> 和 <h2> 標簽的樣式。它們都是標題,顏色和字體相同;但是大小不一樣。通過下面的方法,AbsurdJS會智能地輸出正確的樣式。

  1. var title = function() {  
  2.     return {  
  3.         color: "#2C6125",  
  4.         fontWeight: "normal",  
  5.         fontSize: "40px",  
  6.         fontFamily: "Georgia",  
  7.         padding: "20px 10px" 
  8.     }  
  9. }   
  10. api.add({  
  11.     h1: title(),  
  12.     h2: [  
  13.         title(),   
  14.         { fontSize: "30px" }  
  15.     ]  
  16. }); 
輸出結果:
  1. h1, h2 {  
  2.     color#2C6125;  
  3.     font-weightnormal;  
  4.     font-family: Georgia;  
  5.     padding20px 10px;  
  6. }  
  7. h1 {  
  8.     font-size40px;  
  9. }  
  10. h2 {  
  11.     font-size30px;  

預處理器會收集只定義了一次的相同樣式,并為不同的樣式創(chuàng)建新的定義。

結論

如果打算使用 Node.js,Express 會是***的起點之一。它雖然不是超級強大,但依然很好用。它具備了開發(fā) web 應用所需的基本要素。然后去擴展它,使用 AbsurdJS 會為開發(fā)帶來不少趣味性,因為整個應用都是用純 JavaScript 編寫的。

資源

Express 官網(wǎng) – http://expressjs.com/

Express GitHub 倉庫 - https://github.com/visionmedia/express

AbsurdJS 官網(wǎng)與在線編譯器 – http://absurdjs.com

AbsurdJS GitHub 倉庫 – https://github.com/krasimir/absurd

--------------------------

原文鏈接: Krasimir Tsonev   翻譯: 伯樂在線 - Jaward華仔

譯文鏈接: http://blog.jobbole.com/73031/

責任編輯:林師授 來源: 伯樂在線
相關推薦

2023-11-24 14:54:03

Node.jsElectronAddon

2020-10-26 08:34:13

Node.jsCORS前端

2011-10-18 10:17:13

Node.js

2021-08-20 16:05:28

JavaScript node.js 應用安全

2013-03-28 14:54:36

2020-08-07 10:40:56

Node.jsexpress前端

2012-02-02 15:14:29

Node.js

2017-04-24 08:31:26

Node.jsExpress.jsHTTP

2021-12-13 11:21:46

NodePython開發(fā)

2013-11-01 09:34:56

Node.js技術

2015-03-10 10:59:18

Node.js開發(fā)指南基礎介紹

2020-01-15 14:20:07

Node.js應用程序javascript

2011-11-01 10:30:36

Node.js

2011-09-08 13:46:14

node.js

2011-09-09 14:23:13

Node.js

2011-09-02 14:47:48

Node

2012-10-24 14:56:30

IBMdw

2011-11-10 08:55:00

Node.js

2011-11-10 11:08:34

Node.js

2013-05-17 09:41:02

Node.js云應用開發(fā)IaaS
點贊
收藏

51CTO技術棧公眾號

国产精品久久久久久久久久白浆| 国产18精品乱码免费看| 日韩国产一区二区三区| 欧美性生交大片免网| 日本免费高清一区| japanese国产| 免费看黄裸体一级大秀欧美| 日韩在线免费视频| 国产一卡二卡三卡四卡| 国产成+人+综合+亚洲欧美| 一区二区在线观看免费| 亚洲xxxxx电影| 一起操在线播放| 欧美网色网址| 欧美一区二区视频观看视频| a级黄色一级片| 国产在线观看a视频| 激情综合五月婷婷| 69视频在线播放| 欧美激情图片小说| 欧美理论在线播放| 亚洲国产一区二区三区在线观看| 奇米视频888| 五月天婷婷在线视频| 麻豆中文一区二区| 57pao精品| 免费中文字幕视频| 精品亚洲自拍| 日韩女优av电影在线观看| 妺妺窝人体色www看人体| 国产精品无码2021在线观看| 免费一级欧美片在线观看| 国模精品一区二区三区色天香| 看全色黄大色黄女片18| 日韩激情综合| 91精品国产欧美一区二区| 成年人看的毛片| 欧美高清电影在线| 人人狠狠综合久久亚洲| 欧洲美女免费图片一区| 一区二区三区在线播放视频| 久久综合给合| 精品欧美aⅴ在线网站| 97久久国产亚洲精品超碰热| 国产精品国产高清国产| 日本强好片久久久久久aaa| 欧美一级成年大片在线观看| 亚洲综合欧美综合| 一本色道久久综合狠狠躁的番外| 欧美日韩高清在线播放| 男人添女人荫蒂免费视频| 国产二区三区在线| 亚洲精品亚洲人成人网在线播放| 亚洲精品一区二区三区av| 极品白浆推特女神在线观看 | 97超碰资源| 午夜影院免费在线观看| 国产免费成人| 日韩美女在线播放| 国产一级视频在线| 第四色成人网| 色偷偷888欧美精品久久久| 欧美性受xxxx黑人| 欧美激情黄色片| 日韩电影免费观看中文字幕 | 国产片一区二区| 日韩欧美视频一区二区三区四区| 成人在线二区| 91免费视频大全| 欧美日产一区二区三区在线观看| 99热精品在线播放| 懂色av一区二区三区蜜臀| 国产欧美日韩一区二区三区| 国产一区二区三区在线观看| 国产麻豆精品视频| 国产精品一 二 三| 国产中文在线观看| 亚洲视频一二三区| 亚洲 国产 日韩 综合一区| 国产 日韩 欧美 综合| 97se亚洲国产综合自在线| 欧美日韩一区二区三| 成人18在线| 2023国产精品| 国外成人免费视频| 风流少妇一区二区三区91| 久草中文综合在线| 国产伦精品一区二区三区照片91| 99在线观看精品视频| 极品少妇xxxx偷拍精品少妇| 国产精品揄拍一区二区| 99热这里只有精品1| 97成人超碰视| 看高清中日韩色视频| 午夜精品久久久久久久99热黄桃 | av免费播放网站| 欧美成人有码| 国产成人激情视频| 国产三级视频在线播放| 久久亚洲精精品中文字幕早川悠里 | 最新不卡av在线| 日韩a级在线观看| avav成人| 亚洲国产精品人久久电影| 日本欧美一区二区三区不卡视频| 国产日产精品一区二区三区四区的观看方式| 精品精品欲导航| 国产又粗又黄又猛| 亚洲人体大胆视频| 欧美在线免费视频| 人人爽人人爽人人片av| 久久经典综合| 国产精品久久97| 欧美综合视频在线| 国产精品伦一区| 欧美日韩一区二区三区电影| 中文字幕在线视频久| 日韩欧美二区三区| 久久噜噜色综合一区二区| 久久精品女人天堂| 国产精品美女呻吟| 国产免费视频一区二区三区| 国产精品亚洲视频| 亚洲欧洲国产精品久久| 91精品久久久久久粉嫩| 亚洲高清免费在线| 超碰中文字幕在线观看| 日韩系列欧美系列| 国产精品扒开腿做爽爽爽视频| 日韩中文字幕免费在线观看| 亚洲六月丁香色婷婷综合久久| 一区二区三区网址| 精品精品99| 日韩一中文字幕| 九九精品在线观看视频 | avtt中文字幕| 97精品国产| 国产精品国产三级国产aⅴ9色 | 136国产福利精品导航网址应用| 最近2019年好看中文字幕视频| 亚洲va在线观看| 91色视频在线| 亚洲在线欧美| ****av在线网毛片| 精品对白一区国产伦| 婷婷色一区二区三区| 亚洲在线观看| 欧美国产综合视频| 国产免费不卡| 亚洲视频999| 18岁成人毛片| 国产高清成人在线| av片在线免费| 另类图片第一页| 久久精品电影网站| 国产免费一区二区三区最新不卡 | 亚洲精选av| 亚洲欧美综合图区| 一级黄色在线观看| 成人夜色视频网站在线观看| 久久亚洲国产成人精品无码区| 国产欧美自拍一区| 欧美在线一级va免费观看| 国产999久久久| 国产日韩精品视频一区| 五月婷婷激情久久| 婷婷亚洲图片| 国产精品吴梦梦| 免费av不卡| 91成人在线精品| aaa黄色大片| 欧美日韩国产欧| 国产在线一区二| 18视频在线观看| 欧美色电影在线| а天堂中文在线资源| 国产经典欧美精品| 国内自拍在线观看| 成人久久电影| 超碰在线97av| 18在线观看的| 欧美一区二区三区影视| 麻豆视频免费在线播放| 久久看片网站| 在线观看免费91| 不卡亚洲精品| 欧美国产日本在线| 韩日视频在线| 日韩一区二区在线看| 免费看特级毛片| av高清不卡在线| 日本中文字幕网址| 另类春色校园亚洲| 成人免费淫片aa视频免费| 日本美女在线中文版| 精品99999| 中文字幕在线2019| 亚洲3atv精品一区二区三区| 91精品久久久久久久久久久久| 日本不卡一区二区| 亚洲bbw性色大片| 99欧美精品| 97人人爽人人喊人人模波多 | 亚洲欧美校园春色| 91中文字幕在线| 蜜臀av在线播放| 精品国产一区二区精华| 最近中文字幕在线免费观看| 亚洲网友自拍偷拍| 久草手机视频在线观看| 久久女同精品一区二区| 亚洲av无码久久精品色欲| 视频一区二区三区在线| 五月天丁香综合久久国产| 国产成人精选| 欧美亚洲国产另类| 免费网站在线观看人| 亚洲精品白浆高清久久久久久| 国产又黄又大又爽| 在线免费亚洲电影| 中日韩一级黄色片| 高清shemale亚洲人妖| 亚洲中文字幕无码av永久| 日韩一区二区在线| 国产98在线|日韩| 欧美性suv| 欧美诱惑福利视频| 看黄在线观看| 色99之美女主播在线视频| 99热在线只有精品| 欧美肥胖老妇做爰| 亚洲欧美在线视频免费| 国产欧美精品一区二区色综合朱莉| wwwwwxxxx日本| 免费观看在线综合| 国产69精品久久久久999小说| 九九精品久久| 久久久av水蜜桃| 人人精品视频| 久久66热这里只有精品| 日日夜夜亚洲精品| 国产精品丝袜高跟| 岛国一区二区| 91黑丝高跟在线| 黄视频免费在线看| 久久久91精品国产| 麻豆传媒视频在线| 久久精品国产91精品亚洲 | 日韩一区日韩二区| 免费黄色国产视频| 最新日韩av在线| 久久国产精品二区| 亚洲福利视频导航| 国产黄a三级三级| 亚洲日本在线a| 国产精品成人一区二区三区电影毛片| 91蜜桃免费观看视频| 亚洲一区二区三区四区精品| 激情综合色综合久久| 杨幂一区二区国产精品| 日韩精品电影在线| 欧美精品自拍视频| 性欧美videos另类喷潮| 国产成人一二三区| 伊人激情综合| 免费黄色特级片| 99亚洲伊人久久精品影院红桃| 在线综合视频网站| 欧美精品一线| 色呦呦网站入口| 欧美片第1页综合| 国产精品久久中文字幕| 肉肉av福利一精品导航| 日本免费色视频| 青娱乐精品在线视频| 午夜免费福利视频在线观看| 国产成人在线视频播放| 亚洲第一天堂久久| 国产精品一区三区| 91精品国产自产| 国产精品国产三级国产三级人妇| 国产精品三区在线观看| 亚洲最新视频在线观看| 国产高潮国产高潮久久久91| 国产精品第四页| 久久久久成人片免费观看蜜芽| 自拍偷拍欧美激情| 日韩激情在线播放| 性久久久久久久久| 国产在线观看第一页| 色一情一乱一乱一91av| 一二三四区在线| 亚洲激情久久久| 里番在线观看网站| 91av视频在线观看| 国产精品免费精品自在线观看| 国产欧美精品xxxx另类| 动漫视频在线一区| 亚洲欧洲精品一区二区三区波多野1战4| 国产精品探花在线观看| 青青草成人激情在线| 亚洲中无吗在线| 青青视频免费在线| 日韩综合在线视频| 亚洲一区和二区| 中文字幕中文字幕一区| 男人日女人网站| 日韩一区二区三免费高清| 久草在线网址| 中文字幕在线观看亚洲| 1区2区在线| 欧洲s码亚洲m码精品一区| 美女精品久久| 亚洲欧美在线网| 欧美精品成人| 老司机午夜性大片| 国产成人在线免费| 亚洲蜜桃精久久久久久久久久久久| 91视频.com| 国产精品7777777| 日韩视频免费观看高清在线视频| 成人午夜精品福利免费| 精品调教chinesegay| 污视频免费在线观看| 66m—66摸成人免费视频| 精品国产鲁一鲁****| 精品国产免费一区二区三区| 国产乱码精品一区二区亚洲| 男人添女人荫蒂免费视频| 久久久夜夜夜| 51自拍视频在线观看| 国产精品久久久久久久久晋中 | 丝瓜av网站精品一区二区| 国产原创剧情av| 亚洲午夜一二三区视频| 国产一区二区视频免费| 欧美高清www午色夜在线视频| 玖玖综合伊人| 欧美成人一区二区三区电影| 色综合.com| 精品国产一二| 香蕉精品视频在线观看| 青青草国产免费| 成人a区在线观看| 手机看片福利视频| 欧美视频在线观看 亚洲欧| 无码国产伦一区二区三区视频| 中文字幕亚洲无线码在线一区| 人人超在线公开视频| 国产999在线观看| 亚洲第一福利专区| 国产在线无码精品| 国产精品香蕉一区二区三区| 日韩在线免费观看av| 色噜噜狠狠成人中文综合| xxxx18国产| 久久男人av资源网站| 欧美性生活一级片| 成年人黄色片视频| 成人激情校园春色| 日韩在线观看第一页| 91精品国产综合久久久蜜臀粉嫩| 国产黄色在线观看| 国产 高清 精品 在线 a| 99精品99| 国产1区2区在线观看| 欧美日韩高清一区二区不卡| caopeng在线| 国产专区一区二区| 日韩精品三区四区| 成人免费毛片日本片视频| 亚洲精品福利视频网站| 狠狠躁日日躁夜夜躁av| 蜜臀久久99精品久久久无需会员 | 日韩精品在线电影| 日韩一级二级| 日本高清视频免费在线观看| 成人黄色a**站在线观看| 成年人午夜剧场| 日韩av影片在线观看| 久久er热在这里只有精品66| 日本高清不卡一区二区三| 久久99热这里只有精品| 国产一级视频在线| 日韩精品一区国产麻豆| 在线最新版中文在线| 亚洲第一精品区| 精品一区二区日韩| 99精品视频99| 最近2019年中文视频免费在线观看| 91精品入口| 国产一区二区在线免费播放| 国产日产欧美一区| 精品欧美一区二区精品少妇| 992tv在线成人免费观看| 狠狠一区二区三区| www.国产视频.com| 亚洲精品视频免费观看| 国产激情无套内精对白视频| 欧美中文字幕第一页|