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

復盤Node項目中遇到的13+常見問題和解決方案

系統
筆者之前陸陸續續接手過幾個nodejs項目, 也參與過幾個有點意思的nodejs開源項目, 最近把其中遇到的一些問題和解決方案做一個梳理, 避免大家繼續踩坑. 話不多說我們開始吧~

筆者之前陸陸續續接手過幾個nodejs項目, 也參與過幾個有點意思的nodejs開源項目, 最近把其中遇到的一些問題和解決方案做一個梳理, 避免大家繼續踩坑. 話不多說我們開始吧~

1. window和mac下設置NODE_ENV變量的問題

我們都知道在前端項目中會根據不同的環境變量來處理不同的邏輯, 在nodejs中也一樣, 我們需要設置本地開發環境, 測試環境, 線上環境等, 此時有一直設置環境變量的方案是在package.json中的script屬性中設置, 如下:

  1. "scripts": { 
  2.    "start""export NODE_ENV=development && nodemon -w src --exec \"babel-node src\""
  3.    "build""babel src --out-dir dist"
  4.    "run-build""node dist"
  5.    "test""echo \"Error: no test specified\" && exit 1" 
  6.  } 

從start指令中我們可以發現我們用export NODE_ENV=development來定義開發環境的環境變量,由于筆者采用的是mac電腦,所以可以用export來定義一個node環境變量. 但是在和朋友合作開發項目時發現執行yarn start后會報錯, 后面看錯誤信息才發現window下不識別export, 后面筆者發現window定義環境變量可以用set, 所以對于window用戶, 如果你使用了以上方法設置NODE_ENV, 可以采用如下方式:

  1. "scripts": { 
  2.    "start""set NODE_ENV=development && nodemon -w src --exec \"babel-node src\"" 
  3.  } 

2. 執行npm install發生node-gyp報錯的問題

在項目開發過程中有時候拉取新的node項目代碼后執行npm install, 會報如下錯誤:


node-gyp就是在node環境中使用的生成不同平臺不同編譯器的項目文件, 如果你遇到了相同的問題, 我們可以采用如下方案:

  1. npm install -g node-gyp 

或者直接刪除package-lock.json或者yarn.lock, 然后重新yarn install或者npm install即可, 筆者親測有效.

3. node + koa2項目中刪除已設置的cookie的解決辦法

  • 由于HTTP是無狀態協議,所以需要cookie來區分用戶之間的身份。我們可以把cookie作為是一個由瀏覽器和服務器共同協作實現的規范。

cookie的處理分為以下3步(基礎且重要的知識):

  1. 服務器向客戶端發送cookie
  2. 瀏覽器將cookie保存(可以在后端設置expires或者maxAge,以session形式存在)
  3. 每次瀏覽器都會將之前設置好的cookie發向服務器

在開發node后臺項目時我們經常涉及用戶管理模塊, 這意味我們需要對用戶進行登錄態管理, 在用戶退出時能及時刪除用戶的cookie, 好在koa2自帶了處理cookie的方法, 我們可以通過如下的方式設置cookie:

  1. router.post(api.validVip, 
  2.     async ctx => { 
  3.       ctx.cookies.set('vid''xuxiaoxi', { maxAge: 24 * 3600 * 1000 }); 
  4.     } 
  5. ); 

以上我們隨便設置了一個有效期為1天的cookie, 那如果業務有變動, 需要在有效期內清空此cookie, 我們該如何處理呢? 解析來給出一個相對可用的解決方案:

  1. ctx.cookies.set('vid''', { maxAge: 0 }); 

此時客戶端的cookie將在下次請求時自動失效.

4. socket.io如何與koa/egg配合使用

我們都知道完整的socket.io通信由兩部分組成:

  1. 與NodeJS HTTP 服務器集成(或安裝在其上)的socket.io
  2. 在瀏覽器端加載的客戶端庫socket.io-client

如果我們直接使用koa或者egg, 我們需要將它們內部集成的http和socket.io做兼容, 此時我們可以這樣處理:

  1. import koa from 'koa'
  2. import http from 'http'
  3.  
  4. const app = new koa(); 
  5. const server = http.createServer(app.callback()); 
  6. const io = require('socket.io')(server); 
  7. //  正常的業務處理 
  8. // io 
  9. io.on('connection', (socket) => { 
  10.     console.log('a user connected'); 
  11.     socket.on('doc load', (msg) => { 
  12.       console.log('doc load', msg) 
  13.       io.emit('getData', users) 
  14.     }) 
  15.   }); 
  16.  
  17. server.listen(3000, () => { 
  18.     // ... 
  19. }); 

通過以上的方式就可以正常的將koa和socket.io 做兼容. 后面我們就可以正常的開發IM應用啦~

5. 由于nodejs第三方模塊依賴特定node版本導致的報錯解決方案

這個情況筆者之前也遇到過, 主要原因是第三方沒有和node版本做到很好的向后兼容, 此時解決方案就是更新此第三方包到最新版本(如果還在維護的情況), 或者使用node包管理工具(n)切換到適配的node版本, 如下:

  1. // 更新最新的包 
  2. npm i xxx@latest 
  3.  
  4. // 使用包管理工具n 
  5. npm i -g n 

使用n可以很方便的管理node版本, 感興趣可以嘗試一下.

6. nodejs如何創建定時任務

定時任務在后端開發中是很常見的功能之一, 其本質是根據時間規則,系統在后臺自動執行相應的任務. 在java, PHP 等后臺語言中有很豐富的定時任務的支持, 對于nodejs 這個興起之秀來說, 雖然沒有那么成熟的生態, 但是仍然有定時任務的模塊, 比如node-schedule.

  • Node Schedule 是用于Node.js的靈活的 cron 類和非 cron 類作業調度程序。它允許我們使用可選的重復規則來安排作業(任意函數)在特定日期執行。它在任何給定時間僅使用一個計時器(而不是每秒鐘/分鐘重新評估即將到來的作業)。

一個很實用的場景是我們想在每年的雙十一或者雙十二讓node程序自動抓取某電商的“商品羊毛”, 并推送到自己的郵箱, 此時我們就可以用Node Schedule來開啟一個定時任務來執行我們的業務操作, 筆者的很多node應用都采用了類似的模式.感興趣可以互相交流一下.

那什么是cron風格的Scheduling呢? 其github上給出了一個簡單的介紹:


所以我們可以像如下方式這樣來寫一個定時任務:

  1. let schedule = require('node-schedule'); 
  2.  
  3. let testJob = schedule.scheduleJob('42 * * * *'function(){ 
  4.   console.log('將在未來的每個時刻的42分時執行此代碼, 比如22:42, 23:42'); 
  5. }); 

7. 在nodejs項目中使用import, export和修飾器@decorator語法

我們都知道現在nodejs版本已經到14.0+版本了, 對最新的es語法支持的也足夠好, 但是目前仍然有一些語法不支持, 比如es的模塊導入導出(import, export), 裝飾器(@decorator)等, 此時我們要在node項目中使用這些新特性, 我們就不得不借助工具, 這里筆者采用babel7來解決上述問題, 如下:

  1. # .babelrc 
  2.   "presets": [ 
  3.     [ 
  4.       "@babel/preset-env"
  5.       { 
  6.         "targets": { 
  7.           "node""current" 
  8.         } 
  9.       } 
  10.     ] 
  11.   ], 
  12.   "plugins": [ 
  13.     ["@babel/plugin-proposal-decorators", { "legacy"true }], 
  14.     ["@babel/plugin-proposal-class-properties", { "loose" : true }] 
  15.   ] 

我們只需要在項目根目錄里新建并寫入如上文件, 并安裝babel對應的模塊即可, 如下:

  1. yarn add  
  2. @babel/cli  
  3. @babel/core  
  4. @babel/node  
  5. @babel/plugin-proposal-class-properties  
  6. @babel/plugin-proposal-decorators  
  7. @babel/preset-env 

此時就可以想寫前端項目一樣使用這些新語法特性啦~

8. nodejs中優雅的處理json文件以及提高json讀寫性能

對于nodejs優化方面其實有很多要聊的, 這里主要來說說json相關的優化方案. 我們需要從2個方面來優化, 一個就是json文件的讀寫性能, 此時我們可以采用fast-json-stringify 來大大提高json的讀寫速度, 其本質是提供了一套json-schema約束, 讓json結構更加有序, 從而提高json的讀取查詢速度. 如下使用方式:

  1. const fastJson = require('fast-json-stringify'
  2. const stringify = fastJson({ 
  3.   title: 'H5 Dooring Schema'
  4.   type: 'object'
  5.   properties: { 
  6.     firstName: { 
  7.       type: 'string' 
  8.     }, 
  9.     lastName: { 
  10.       type: 'string' 
  11.     }, 
  12.     age: { 
  13.       description: 'Age in years'
  14.       type: 'integer' 
  15.     }, 
  16.     reg: { 
  17.       type: 'string' 
  18.     } 
  19.   } 
  20. }) 

比如說在H5-Dooring的后臺中, 有很多需要頻繁讀寫json數據的接口, 此時使用fast-json-stringify對讀寫性能會有很大的提升.

另一方面, 我們在node 端操作json, 如果用原生的寫法會非常麻煩, 此時我們最好自己對json讀取進行封裝來提高代碼的簡約性, 或者我們直接使用第三方庫jsonfile 來輕松讀寫json文件, 如下使用案例:

  1. const json = require('jsonfile'
  2. const fileName = 'h5-dooring.json' 
  3. const jsonData = jsonFile.readFileSync(fileName) 

9. nodejs讀取大文件報錯解決方案

在nodejs中 我們可以使用兩種方式來讀寫文件, 如下:

  1. fs.readFile() 一次性將文件讀取進內存中, 如果文件過大會導致node內存不夠而報錯
  2. fs.createReadStream() 以文件流的方式讀取, 此時可以不用擔心文件的大小

由以上介紹可知如果我們要讀取的文件可能會很大(比如視頻等大文件), 我們一開始就要使用fs.createReadStream(), 其實如果我們需要對文件進行解析, 比如要對簡歷等文件進行逐行解析提取關鍵語料, 我們可以使用node的readline模塊, 此時我們就可以對文件進行逐行讀取并解析, 如下案例:

  1. const fs = require("fs"); 
  2. const path = require("path"); 
  3. const readline = require("readline"); 
  4.  
  5. const readlineTask = readline.createInterface({ 
  6.     input: fs.createReadStream(path.join(__dirname, './h5-dooring')), 
  7. }); 
  8.   
  9. readlineTask.on('line'function(chunk) { 
  10.   // 讀取每一行數據 
  11. }); 
  12.   
  13. readlineTask.on('close'function() { 
  14.   //文件讀取結束的邏輯 

10. nodejs如何開啟gzip優化網站性能

對于nodejs開啟gzip 的操作也屬于node性能優化的一部分, 經過這樣的處理可以讓我們的網站加載更快, 我們可以使用koa的koa-compress中間件來實現gzip 功能. 具體實現如下:

  1. import koa from 'koa'
  2. import compress from 'koa-compress'
  3.  
  4. const app = new koa(); 
  5. // 開啟gzip 
  6. const options = { threshold: 2048 }; 
  7. app.use(compress(options)); 

當然koa-compress還有很多自定義的配置項, 大家可以感受一下.

11. 解決window和linux系統下路徑分隔符不一致的問題

這個問題也是系統之間的差異導致的, 也是需要考慮的問題, 我們都知道在linux系統下路徑的分隔符為/, 比如h5-dooring/src/pages, 但是在window下解析的可能就是h5-dooring\\src\\pages這樣的路徑, 此時我們需要做適配, 不然我們部署到不同系統上報錯是必然的, 所以我們需要全局配置路徑通配符, 筆者的解決方案如下:

  1. import os from 'os' 
  2. const _$ = (os.platform().toLowerCase() === 'win32') ? '\\' : '/'; 

此時涉及到具體路徑的地方我們用_$ 代替即可, 以上代碼我們用到了node的os模塊, 感興趣的可以研究一下, 我們可以用os模塊處理很多有意思的因為系統差異導致的問題.

12. nodejs如何實現父子進程通信

由于nodejs是單線程的, 但是有時候我們需要支持處理多個進程的業務, 目前nodejs可以通過哦父子進程的模式來模擬多進程, 我們可以用到child_process, 大致流程如下:


筆者之前分享的很多node實戰項目都采用了child_process, 大致實現過程如下:

  1. // child.js 
  2. function computedTotal(arr, cb) { 
  3.     // 耗時計算任務 
  4.  
  5. // 與主進程通信 
  6. // 監聽主進程信號 
  7. process.on('message', (msg) => { 
  8.   computedTotal(bigDataArr, (flag) => { 
  9.     // 向主進程發送完成信號 
  10.     process.send(flag); 
  11.   }) 
  12. }); 
  13.  
  14. // main.js 
  15. const { fork } = require('child_process'); 
  16.  
  17. app.use(async (ctx, next) => { 
  18.   if(ctx.url === '/fetch') { 
  19.     const data = ctx.request.body; 
  20.     // 通知子進程開始執行任務,并傳入數據 
  21.     const res = await createPromisefork('./child.js', data) 
  22.   } 
  23.    
  24.   // 創建異步線程 
  25.   function createPromisefork(childUrl, data) { 
  26.     // 加載子進程 
  27.     const res = fork(childUrl) 
  28.     // 通知子進程開始work 
  29.     data && res.send(data) 
  30.     return new Promise(reslove => { 
  31.         res.on('message', f => { 
  32.             reslove(f) 
  33.         }) 
  34.     })   
  35.   } 
  36.    
  37.   await next() 
  38. }) 

13. node端實現圖片編輯/壓縮

圖片編輯壓縮在很多場景中用前端的技術實現比較常見, 其實在node端也有很多需要處理的圖片需要, 畢竟客戶端處理的質量不好控制, 此時我們可以采用node-images, 他是一款node 端輕量級跨平臺圖像編解碼庫, 其主要特性如下:

  • 輕量級:無需安裝任何圖像處理庫。
  • 跨平臺:Windows下發布了編譯好的.node文件,下載就能用。
  • 使用簡單:jQuery風格的API,簡單可依賴

我們可以使用它來裁剪, 壓縮圖片, 基本使用如下:

  1. const images = require("images"); 
  2.  
  3. images("input.jpg")                     //加載圖像文件                             
  4.   .size(400)                          //等比縮放圖像到400像素寬 
  5.      .draw(images("logo.png"), 10, 10)   //在(10,10)處繪制Logo 
  6.        .save("output.jpg", {             //保存圖片到文件,圖片質量為50 
  7.         quality : 50                     
  8.        }); 

H5-Dooring 編輯器中哦你也使用了它來做圖片處理和編輯, 大家也可以更根據實際業務來使用.

14. node端解析“命令行指令字符串”實現線上自動打包部署項目

關于node解析cmd字符串并執行命令行指令的方式筆者之前在寫自己實現一個自動化工作流的文章中也介紹過, 使用了child_process模塊的exec, 具體實現可以參考文章:

基于NodeJS從零構建線上自動化打包工作流(H5-Dooring特別版)

這里寫一個簡單的例子:

  1. const cmdStr = `cd ${outWorkDir} && yarn build ${fid}` 
  2. // 解析命令行指令, 實現線上自動打包構建項目 
  3. exec(cmdStr, function(err, stdout, stderr){ 
  4.   if(err) { 
  5.     console.log('api error:'+stderr); 
  6.     io.emit('htmlWorked', { result: 'error', message: stderr }) 
  7.   } else { 
  8.     // ... 
  9.   } 
  10. }) 

15. 如何解決node應用崩潰, 負載均衡和進程管理

解決此問題最好的方式就是采用pm2 或者forever, 其提供了強大的node進程管理, 負載均衡的能力, 并提供了一定程度的應用監控, 建議在線上環境使用pm2 來管理我們的node應用.

 

責任編輯:姜華 來源: 趣談前端
相關推薦

2022-03-26 13:31:18

項目node變量

2023-04-12 11:32:33

網絡

2019-10-08 16:05:19

Redis數據庫系統

2014-01-07 13:54:02

HadoopYARN

2024-07-08 08:45:41

2010-08-31 16:09:04

DIV+CSS

2022-03-31 10:25:20

物聯網工業 4.0大數據分析

2023-10-16 16:08:42

工業 4.0物聯網邊緣計算

2016-09-27 21:14:53

JavaURL

2010-08-04 10:20:30

Flex組件開發

2019-04-04 13:11:37

React內存泄露memory leak

2010-08-26 12:59:29

marginCSS

2024-05-09 15:00:38

Python編碼開發

2011-07-26 16:05:19

Oracle數據庫服務器

2025-02-19 08:00:00

移動端移動設備移動開發

2025-09-03 10:12:47

移動端JavaScript開發

2021-08-05 08:32:27

React開發項目

2024-05-24 10:56:24

PythonURL代碼

2024-10-30 11:00:00

Python列表索引

2010-12-27 11:00:53

Virtualbox
點贊
收藏

51CTO技術棧公眾號

久久视频在线观看中文字幕| 久久久欧美精品| 性刺激的欧美三级视频| 福利在线视频网站| av在线播放一区二区三区| 国产91在线播放九色快色| 国产黄色的视频| 国产成人影院| 日韩女优毛片在线| av天堂永久资源网| wwwav在线| 国产午夜亚洲精品羞羞网站| 51蜜桃传媒精品一区二区| 中文字幕精品三级久久久| 欧美xxxx中国| 亚洲视频axxx| 久久久久亚洲无码| 国产区一区二| 欧美怡红院视频| 免费毛片网站在线观看| 天堂аⅴ在线地址8| 91丨九色丨国产丨porny| 91久久久国产精品| 中文字幕人妻丝袜乱一区三区| 欧美日韩一区二区国产| 在线色欧美三级视频| 日本69式三人交| 日韩中文字幕在线一区| 欧美日韩国产首页在线观看| 亚洲爆乳无码专区| 97蜜桃久久| 一区二区三区四区不卡视频| 亚洲国产日韩综合一区| 日本在线一二三| www.亚洲国产| 国产精品我不卡| wwwxxxx国产| 国产一区二区按摩在线观看| 国产精品亚洲网站| 91丨九色丨海角社区| 国产一区成人| 5566成人精品视频免费| 国产一级片网址| 欧美人成在线| 色中色综合影院手机版在线观看 | 日本韩国欧美中文字幕| 亚洲国产二区| 国产69精品久久久久9| 欧美三级 欧美一级| 亚洲综合色站| 欧美精品免费看| 欧美日韩黄色网| 中文字幕亚洲综合久久五月天色无吗'' | 亚洲精品高清在线| 91国在线高清视频| 91精品久久| 尤物在线观看一区| 日韩欧美猛交xxxxx无码| 在线观看三级视频| 夜夜精品视频一区二区| 妺妺窝人体色www看人体| 国产精品蜜臀| 黄色91在线观看| 国产精品视频一区二区三区四区五区| 日韩脚交footjobhd| 狠狠爱在线视频一区| 欧美精品色婷婷五月综合| 国产不卡网站| 欧美色图12p| 亚洲天堂一区二区在线观看| 日韩中文字幕在线一区| 亚洲精品www久久久| 中文字幕一区二区三区人妻不卡| 国产不卡一二三区| 综合国产在线观看| 青青草手机在线观看| 亚洲第一黄网| 国产精品国产三级国产专播精品人 | 亚洲一二三四| 欧美日韩高清一区二区| 精品无码av一区二区三区不卡| 久久久久97| 少妇av一区二区三区| 强乱中文字幕av一区乱码| 99亚洲视频| 国产精品一区二区3区| 国产超碰人人模人人爽人人添| av亚洲精华国产精华精华| 日本10禁啪啪无遮挡免费一区二区| 69久久夜色| 亚洲高清视频中文字幕| 妓院一钑片免看黄大片| 亚洲国产高清在线观看| 亚洲欧美制服第一页| www.xxxx日本| 天堂一区二区在线| 亚洲自拍中文字幕| 欧美套图亚洲一区| 亚洲码国产岛国毛片在线| 国产免费裸体视频| 国产精品蜜月aⅴ在线| 亚洲国产欧美一区| 国精产品一区一区| 销魂美女一区二区三区视频在线| 国产这里只有精品| 久久电影中文字幕| 亚洲国产日韩在线一区模特| 亚洲欧美日本一区二区三区| 日韩激情啪啪| 精品中文字幕乱| 中文字幕资源网| 久久综合一区二区| 欧美无砖专区免费| 97久久中文字幕| 亚洲人成亚洲人成在线观看| av资源吧首页| 韩国v欧美v亚洲v日本v| 人禽交欧美网站免费| 国产极品在线观看| 欧美大片一区二区| www深夜成人a√在线| 日本成人在线电影网| 蜜桃传媒视频麻豆一区| 欧美理论片在线播放| 7777精品伊人久久久大香线蕉经典版下载| av网站有哪些| 在线成人欧美| 99电影网电视剧在线观看| 在线观看黄av| 欧美性videosxxxxx| 欧美特级黄色录像| 亚久久调教视频| 韩国成人av| av中文字幕在线看| 欧美精品一区二区久久久| 亚洲国产精品免费在线观看| 久久精品国产免费看久久精品| 欧美午夜精品理论片a级大开眼界 欧美午夜精品久久久久免费视 | 在线播放国产一区二区三区| 国产免费av一区| 91在线视频播放地址| 一本久道高清无码视频| 成人福利一区| 国内精品免费午夜毛片| 亚洲乱熟女一区二区| 亚洲免费看黄网站| 亚洲av综合色区无码另类小说| 午夜精品久久99蜜桃的功能介绍| 亚洲自拍小视频免费观看| 在线免费av导航| 精品国内二区三区| 香蕉免费毛片视频| 久久亚洲捆绑美女| 草草草在线视频| 精品午夜久久| 成人网中文字幕| 中文字幕中文字幕在线中高清免费版 | 美日韩丰满少妇在线观看| 精品国产九九九| 亚洲综合免费观看高清在线观看| 日韩大尺度视频| 国产精品嫩草99av在线| 欧美18视频| 福利精品一区| 久久91超碰青草是什么| 五月婷婷丁香六月| 91久久精品一区二区二区| 天天舔天天操天天干| 久久99最新地址| 丁香六月激情网| 国产a久久精品一区二区三区| 国产精品福利网站| 在线āv视频| 日韩激情视频在线| 在线免费观看视频网站| 亚洲精品欧美在线| 亚洲第一黄色网址| 蜜臂av日日欢夜夜爽一区| 麻豆视频传媒入口| 青青久久av| 国产色视频一区| 福利成人导航| 中文字幕视频一区二区在线有码 | 99精品国自产在线| 免费91在线视频| 头脑特工队2免费完整版在线观看| 一本久久a久久精品亚洲| 免费成人美女女在线观看| 成人一区二区三区视频在线观看| 免费在线观看的毛片| 亚洲电影影音先锋| 蜜桃精品久久久久久久免费影院| 91精品在线免费视频| 91精品国产乱码久久久久久久久 | 午夜免费福利网站| 麻豆久久精品| 强开小嫩苞一区二区三区网站| 色婷婷精品视频| 亚洲伊人一本大道中文字幕| 电影亚洲精品噜噜在线观看| 欧美日本精品在线| eeuss影院在线播放| 亚洲级视频在线观看免费1级| 中文字幕人妻互换av久久 | 欧美精品做受xxx性少妇| 青青草免费观看免费视频在线| 69久久99精品久久久久婷婷| 中文字幕日韩免费| 亚洲国产精品一区二区www在线 | 午夜精品福利在线| 精品无码久久久久成人漫画| 中文字幕第一页久久| 91丝袜在线观看| 国产精品综合在线视频| 亚州精品一二三区| 国产美女精品| www.av片| 欧美在线高清| 成人在线观看www| 日本道不卡免费一区| 久久亚洲一区二区| 99re8这里有精品热视频8在线| 国产免费成人av| 欧美成人精品三级网站| 97在线日本国产| 国产高清中文字幕在线| 欧美福利在线观看| 3d玉蒲团在线观看| 久久夜色撩人精品| 伊人在线视频| 一区二区三区国产视频| 免费资源在线观看| 亚洲精品视频在线播放| 午夜小视频在线播放| 亚洲成年人在线播放| www.国产三级| 欧美成人在线直播| 国产小视频免费观看| 精品人在线二区三区| 亚洲黄色小说网| 日韩美女在线视频| 亚洲av无码一区二区三区dv| 日韩欧美激情一区| 成人黄色在线观看视频| 日韩欧美一区二区视频| www.亚洲黄色| 精品动漫一区二区三区在线观看| 成人午夜免费在线观看| 亚洲国产精品大全| 天堂a√在线| 国产一区二区日韩精品欧美精品| 国产系列在线观看| 中文字幕亚洲色图| 岛国中文字幕在线| 欧美日韩第一视频| aa级大片免费在线观看| 午夜精品一区二区三区在线| 僵尸再翻生在线观看免费国语| 91福利视频网| 成人啊v在线| 成人国产精品免费视频| 日韩欧美久久| 激情久久av| 少妇精品久久久一区二区三区| 日韩女优中文字幕| 久久久久久久久久久妇女| 99久久久精品视频| 久久xxxx精品视频| 亚洲一区日韩精品| 国产不卡高清在线观看视频| 亚洲精品乱码久久久久久久| 国产亚洲成av人在线观看导航 | 国产日韩中文字幕| 最新精品在线| 欧美日韩一区二区三区免费| 日韩在线高清| 2018日日夜夜| 麻豆一区二区在线| 91精品啪在线观看国产| 国产欧美一区二区精品忘忧草| 亚洲天堂网av在线| 午夜精品aaa| 中文字幕 自拍偷拍| 日韩欧美一二区| 岛国视频免费在线观看| 欧美另类xxx| 免费电影日韩网站| 666精品在线| 国模精品一区| 美女黄色免费看| 蜜臀久久99精品久久久久久9 | 亚洲欧美偷拍另类a∨色屁股| 久久久久久久99| 欧美妇女性影城| 日本国产在线| 欧美国产视频日韩| 精品久久在线| 裸模一区二区三区免费| 一精品久久久| 亚洲一二三区av| 成人激情小说网站| 国产精品久久久免费看| 欧美性xxxxx| 肥臀熟女一区二区三区| 日韩中文字幕亚洲| 麻豆精品蜜桃| 久久久久一区二区| 国产精品啊啊啊| 蜜臀av免费观看| 久久网站最新地址| 久久久精品99| 欧美一二三区在线观看| 91在线观看| 日韩免费黄色av| 极品束缚调教一区二区网站| 国产91视频一区| 精品午夜久久福利影院| 国产伦精品一区二区三区视频女| 精品欧美一区二区三区| 亚洲AV无码一区二区三区性| 久久久国产精品x99av| 日韩一区二区三区免费视频| 久久综合色一本| 亚洲一区二区三区四区五区午夜| 久久精品无码一区二区三区毛片| 中文字幕第一区| 蜜臀99久久精品久久久久小说| 亚洲乱码国产乱码精品精天堂| 欧美黄色视屏| 国产精品一区二区三区四区五区 | 亚洲欧洲中文日韩久久av乱码| 在线观看一二三区| 日韩最新免费不卡| 欧美日韩破处视频| 亚洲天堂电影网| 精品一区二区三区免费毛片爱| 美国黑人一级大黄| 欧美三级电影在线观看| av午夜在线| 国产精品自产拍在线观看| 成人久久久久| 老司机午夜性大片| 18涩涩午夜精品.www| 亚洲在线视频播放| 日日狠狠久久偷偷四色综合免费 | 韩国成人av| 亚欧美中日韩视频| 国产成人精品无码免费看夜聊软件| 日韩欧美在线视频| а√天堂中文在线资源bt在线 | 亚洲国产中文在线| 久草免费福利在线| 91尤物视频在线观看| 69视频免费在线观看| 伊人激情综合网| 一区二区三区| www.激情网| 91亚洲精品久久久蜜桃| av图片在线观看| 日韩在线视频免费观看| 精品一区二区三区四区五区 | 亚洲国产精品999| 丝袜美腿一区| 中文字幕不卡每日更新1区2区| 国产一区二区三区四| 国产亚洲欧美精品久久久久久| 亚洲国产欧美一区| 国产成人亚洲一区二区三区| 久久久无码中文字幕久...| 成人高清伦理免费影院在线观看| 日本韩国欧美中文字幕| 日韩中文字幕av| 伊人www22综合色| 欧美s码亚洲码精品m码| 欧美国产一区二区| 午夜精品久久久久久久99热黄桃| 韩剧1988在线观看免费完整版| 精品一区二区三区在线| 中文字幕一区二区三区人妻在线视频| 懂色av影视一区二区三区| a√资源在线| 国产精品日韩欧美一区二区| 日韩精品免费视频人成| 九九精品在线观看视频| 亚洲免费精彩视频| 另类视频一区二区三区| 日本精品免费在线观看| 亚洲欧美色一区| 好男人免费精品视频| 91精品天堂| 视频一区在线播放| 久久婷婷一区二区| 国产一区二区三区丝袜| 成人看片黄a免费看视频| 亚洲欧洲日本精品| 红桃av永久久久| 性欧美猛交videos| 色噜噜狠狠一区二区三区| 成人黄色一级视频| 国产一区二区自拍视频|