精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

日韩最新av在线| 天天射综合影视| 91精品视频专区| 国产成人综合在线视频| 亚洲国产中文在线二区三区免| 一区二区三区不卡视频| 国产欧美日韩一区二区三区| 黑人精品无码一区二区三区AV| 精品美女久久久| 51久久夜色精品国产麻豆| 无码av天堂一区二区三区| 男人的天堂在线| 另类小说欧美激情| 久久久久日韩精品久久久男男| 久久只有这里有精品| 国产美女精品视频免费播放软件 | 我不卡一区二区| 成人短视频软件网站大全app| 午夜欧美视频在线观看| 亚洲高清资源综合久久精品| 日本久久一级片| 久久精品国产久精国产| 2021国产精品视频| 中国一级片在线观看| 亚州国产精品| 日韩美女视频在线| 日韩一区二区三区不卡视频| 后进极品白嫩翘臀在线播放| 中文字幕欧美国产| 国产在线精品一区| 国产人妻精品一区二区三区| 久久久噜噜噜久久狠狠50岁| 色综合色综合网色综合| 日本爱爱小视频| 精品免费视频| 亚洲深夜福利在线| 中文视频在线观看| 91精品国产乱码久久久竹菊| 制服丝袜av成人在线看| 国产福利一区视频| 国产在线天堂www网在线观看| 一区二区三区四区不卡视频| 亚洲自拍三区| 第一页在线观看| 99久久精品国产导航| av蓝导航精品导航| 99久久精品国产成人一区二区| 青青草91视频| 国产成人免费av电影| 国产超碰人人爽人人做人人爱| 亚洲一级毛片| 久久国产精品久久久久| 色婷婷粉嫩av| 色一区二区三区四区| 中文字幕国产精品久久| 无码 人妻 在线 视频| 秋霞在线一区| 亚洲欧美999| 国产精品1000部啪视频| 亚洲人挤奶视频| 精品亚洲va在线va天堂资源站| 91久久精品美女| 亚洲精品午夜国产va久久成人| 好看的亚洲午夜视频在线| 欧美精品情趣视频| 国产高潮国产高潮久久久91| 欧美aⅴ99久久黑人专区| 久久综合色88| 成人免费毛片东京热| 欧美在线日韩| 欧美激情xxxx性bbbb| 国产精品7777| 性高湖久久久久久久久| 国产精品96久久久久久| 欧美日韩 一区二区三区| 日本不卡一区二区| 成人激情视频在线观看| av男人天堂网| 成人h精品动漫一区二区三区| 国产精品久久久久久久美男 | 91欧美在线视频| 日本一区二区动态图| 一区二区三区四区五区精品| 麻豆av免费在线观看| 亚洲精品日日夜夜| 久久视频这里有精品| sis001欧美| 欧美婷婷六月丁香综合色| 中文字幕一区久久| 波多野结衣欧美| 国产视频久久久| 一二三四在线观看视频| 综合精品久久| 欧美亚洲第一区| 最新在线中文字幕| 国产精品18久久久久久久久| 久久草视频在线看| 91精品国产综合久久久久久豆腐| 亚洲激情校园春色| 日日鲁鲁鲁夜夜爽爽狠狠视频97| 成人精品国产亚洲| 亚洲精品一区二区三区99| 欧美做受xxxxxⅹ性视频| 欧美激情偷拍自拍| 97久久久免费福利网址| 中文区中文字幕免费看| 国产99久久久国产精品免费看| 蜜桃精品久久久久久久免费影院| 日韩伦理在线电影| 亚洲一区免费观看| 欧美大尺度做爰床戏| 2020最新国产精品| 在线色欧美三级视频| 欧美成人精品一区二区免费看片| 久久99伊人| 91手机视频在线观看| 深夜视频在线免费| 一区二区三区在线免费| 亚洲 欧美 日韩系列| 红杏视频成人| 久久艳片www.17c.com | 国产精品亚洲综合久久| 成人国产精品久久久| 欧美69xxxxx| 亚洲一区国产视频| 毛毛毛毛毛毛毛片123| jizzjizz欧美69巨大| 欧美在线xxx| 高清一区二区三区四区| 亚洲另类一区二区| av亚洲天堂网| 日韩精品1区| 国产成人在线一区二区| 五月婷婷六月丁香| 一区二区理论电影在线观看| 亚洲36d大奶网| 欧美绝顶高潮抽搐喷水合集| 欧美激情视频在线免费观看 欧美视频免费一 | 久久久久久久久久久久91| 精品日产乱码久久久久久仙踪林| 久久国产精品影片| 国产乱码久久久久| 国产精品福利一区| www.精品在线| 成人亚洲一区二区| 国产精品成人品| 蜜桃视频在线播放| 一本久久精品一区二区| 亚洲最大的黄色网| 国产精品日本| 鲁丝一区二区三区免费| 瑟瑟视频在线看| 日韩电影中文字幕| 国产成人精品一区二三区| 99视频一区二区三区| 欧美激情视频免费看| 国产图片一区| 555www成人网| 蜜桃视频在线免费| 欧美午夜精品久久久久久超碰| 国内精品卡一卡二卡三| 欧美a一区二区| 亚洲成人一区二区三区| 青草综合视频| 久久大大胆人体| 精品国产伦一区二区三| 洋洋av久久久久久久一区| 丰满饥渴老女人hd| 亚洲精选在线| 欧美最大成人综合网| 91tv亚洲精品香蕉国产一区| xxxx性欧美| www.香蕉视频| 婷婷久久综合九色综合伊人色| 久久中文字幕人妻| 奇米色777欧美一区二区| 亚洲一区三区电影在线观看| 人人爱人人干婷婷丁香亚洲| 欧美精品福利视频| 免费在线稳定资源站| 欧美日韩午夜影院| 久久久久久激情| 久久综合视频网| 亚洲欧美自偷自拍另类| 欧美福利影院| 欧美一进一出视频| 国产乱码精品一区二区三区亚洲人| 久久久久久久国产| 黄色软件在线观看| 欧美一区二区三区视频在线观看 | 一本到一区二区三区| 亚洲欧美日韩第一页| 成人黄色a**站在线观看| 国产精品涩涩涩视频网站| 一区二区三区四区在线观看国产日韩| 成人三级视频在线观看一区二区| 国产精欧美一区二区三区蓝颜男同| 日韩一区在线视频| 天堂中文资源在线观看| 欧美区在线观看| 亚洲欧美在线观看视频| 国产精品美女一区二区三区| 亚洲av成人精品一区二区三区| 日本视频在线一区| 农民人伦一区二区三区| 三级电影一区| 久久影视中文粉嫩av| 国产精区一区二区| 国产精品99久久久久久白浆小说 | 亚洲精品日产精品乱码不卡| 风间由美一二三区av片| 国产一区二区三区免费| 日韩毛片在线免费看| 欧美精品自拍| 亚洲va韩国va欧美va精四季| 加勒比中文字幕精品| 成人免费福利在线| 亚洲成人短视频| 国产最新精品视频| 爆操欧美美女| 色婷婷综合久久久久| 毛片在线免费| 亚洲国产天堂久久国产91| 国产乱码一区二区| 欧美日韩高清影院| 337p粉嫩色噜噜噜大肥臀| 午夜精品久久久久久不卡8050| 玖玖爱这里只有精品| 国产精品女主播av| 精品人妻无码一区| 91理论电影在线观看| 精品国产免费久久久久久婷婷| 久久91精品久久久久久秒播| 成人中文字幕av| 国产精品色网| 国产二级片在线观看| 欧美日一区二区在线观看 | 日本免费福利视频| 不卡一二三区首页| 喷水视频在线观看| zzijzzij亚洲日本少妇熟睡| www.四虎精品| 懂色av一区二区在线播放| 国产人妻精品久久久久野外| 国产一区二区中文字幕| 久久国产激情视频| 琪琪一区二区三区| av亚洲天堂网| 国产一本一道久久香蕉| 波多野结衣在线免费观看| 国产一区在线不卡| www.色.com| 国v精品久久久网| 中文视频在线观看| 91年精品国产| 中文字幕免费视频| 国产欧美日韩精品a在线观看| 黄色片网站免费| 国产精品久久毛片| 99久久99久久精品国产| 亚洲猫色日本管| 日本熟妇毛茸茸丰满| 亚洲成人av福利| 国产精品视频免费播放| 一本色道久久综合狠狠躁的推荐| 91黑人精品一区二区三区| 日本高清不卡一区| 国产又黄又粗又硬| 日韩精品极品| 国产亚洲精品va在线观看| 国内在线精品| 日韩视频在线免费观看| 成人区精品一区二区不卡| 久久6精品影院| h片在线观看视频免费| 欧美在线视频免费| ww久久综合久中文字幕| 亚洲综合日韩在线| 日本国产精品| 亚洲成人在线视频网站| 欧美va亚洲va日韩∨a综合色| 国产va亚洲va在线va| 亚洲免费网站| 国产三级三级看三级| 国产成人综合在线| 极品人妻一区二区三区| 中文字幕一区二区三区精华液| 国产高清在线免费观看| 都市激情亚洲色图| 在线观看免费黄色小视频| 91麻豆精品国产无毒不卡在线观看 | 一区二区国产视频| 国产精品久久久久久99| 欧美三级视频在线| 亚洲精品综合久久| 国产一区二区三区在线| 在线黄色网页| 日韩免费高清在线观看| 精品一区二区三区四区五区| 欧美日本亚洲| 欧美激情一级片一区二区| 成人亚洲视频在线观看| 国产成人av一区二区| 成人在线手机视频| 亚洲不卡av一区二区三区| 亚洲天堂免费av| 亚洲国产精彩中文乱码av| 午夜激情视频在线| 欧美孕妇与黑人孕交| 亚洲大奶少妇| 亚洲欧洲一区二区福利| 亚洲欧洲另类| 91精品999| 国产午夜精品福利| 国产第一页第二页| 欧美精品国产精品| 男人av在线| 97精品一区二区三区| 日本高清久久| 一区二区三区免费看| 久久一二三区| 艳妇乳肉亭妇荡乳av| 亚洲欧美乱综合| 最近中文字幕免费在线观看| 亚洲欧美日本精品| 成人一级福利| 成人自拍偷拍| 欧美成人午夜| 日本中文字幕观看| 日本一区二区动态图| 国产一级18片视频| 亚洲国产中文字幕在线观看| 免费看电影在线| 亚洲伊人成综合成人网| 国产精品久久久久蜜臀 | 成人在线视频播放| 久久精品99久久| 亚洲国产黄色| www.555国产精品免费| 亚洲女人的天堂| 国产女人18毛片18精品| 俺去了亚洲欧美日韩| 久久不卡日韩美女| 亚洲无玛一区| 久久99久久99| 91传媒免费观看| 91麻豆精品91久久久久久清纯| 色欧美激情视频在线| 国产美女精品视频免费观看| 精品国产aⅴ| 黄色片在线免费| 亚洲国产精品国自产拍av| 国产精品欧美综合| 在线视频欧美日韩| 六九午夜精品视频| 精品少妇人妻av一区二区| 精品一区二区免费视频| 四虎永久免费在线| 精品剧情在线观看| 国产精品xx| 欧美日韩一区在线视频| 琪琪一区二区三区| 男人av资源站| 日韩精品一区二区三区视频在线观看 | 人体内射精一区二区三区| 成年人网站91| 国产性生活视频| 日韩中文有码在线视频| 日本亚洲欧洲无免费码在线| 超碰97免费观看| 国产a精品视频| 国产www在线| 中国人与牲禽动交精品| 成人激情久久| 91免费黄视频| 久久久精品欧美丰满| 一级黄色片在线观看| 欧美日韩xxxxx| 欧美亚洲色图校园春色| 三年中国国语在线播放免费| 综合色中文字幕| 亚洲精品字幕在线观看| 国产国语刺激对白av不卡| 99久久久久| 日本一卡二卡在线| 在线免费一区三区| 羞羞电影在线观看www| 久久精品国产第一区二区三区最新章节 | 久久久蜜桃精品| 亚洲在线精品视频| 国内精品久久影院| 成人av二区| 日本一级大毛片a一| 一本一道综合狠狠老| 黄色网页网址在线免费| 国产一区二区三区av在线| 日韩一区精品字幕| 久久97人妻无码一区二区三区| 亚洲欧美在线第一页| 清纯唯美激情亚洲|