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

Bun vs Node:必知必會(huì)

系統(tǒng) 其他OS
雖然 Bun 還處于早期發(fā)展階段,但它名噪一時(shí)毋庸置疑。目前,它針對(duì) MacOS 和 Linux 進(jìn)行了優(yōu)化,雖然 Windows 的支持正在進(jìn)行中,但某些功能即將推出。憑借它提供的一切,Bun 無疑是您應(yīng)該考慮探索的工具包。

大家好,這里是大家的林語冰。

JS 社區(qū)掀起了運(yùn)行時(shí)狂潮:Jarred Sumner 孵化的 Bun 1.0 官宣了。話雖如此,還是有一大坨道友很好奇:Bun 的本質(zhì)是什么鬼物?為什么每個(gè)人都將其與百煉成鋼的 Node 相提并論?Bun 只是另一種曇花一現(xiàn)的過眼云煙,還是會(huì)重新定義這場(chǎng)游戲?在本文中,讓我們深入 Bun,瞄一下其功能,并了解它與成熟的 Node 的異同點(diǎn)。

Bun 是什么鬼物?

Bun 是一款適用于 JS/TS App 的超快速一體化工具包。Bun 的魅力在于它能夠簡(jiǎn)化開發(fā)流程,比以往更絲滑高效。這并非不可能事件,因?yàn)?Bun 不僅僅是運(yùn)行時(shí),它還是包管理器/打包器/測(cè)試運(yùn)行器。請(qǐng)想象一下,JS 開發(fā)有了一把瑞士軍刀;此乃 Bun 饋贈(zèng)與君之福利。

Bun 解決了什么問題?

Node 于 2009 年橫空出世。雖然但是,與一大坨技術(shù)一樣,隨著技術(shù)的發(fā)展,其復(fù)雜性也與日俱增。請(qǐng)將其想象成一座城市。隨著城市的擴(kuò)張,交通擁堵可能會(huì)成為一個(gè)問題。

Bun 旨在成為緩解這種擁堵的新基建,讓一切運(yùn)行得更絲滑。這絕非反復(fù)造輪子,而是對(duì)其優(yōu)化,確保我們?cè)讷@得速度和簡(jiǎn)單性的同時(shí),不會(huì)喪失 JS 獨(dú)特和強(qiáng)大的本質(zhì)。

Bun 被設(shè)計(jì)為比 Node 更快、更精簡(jiǎn)、更現(xiàn)代的競(jìng)品,所以讓我們仔細(xì)瞄一下其比較。但首先讓我們按下不表。

Node vs Deno vs Bun

在討論 JS 運(yùn)行時(shí)的進(jìn)化史時(shí),很難無視 Deno。“Node 之父”Ryan Dahl 推出了 Deno 作為一個(gè)新的運(yùn)行時(shí),旨在解決在 Node 中發(fā)現(xiàn)的某些挑戰(zhàn)和遺憾。

Deno 是 JS/TS 的安全運(yùn)行時(shí)。它直接解決了 Node 的一大坨短板。舉個(gè)栗子,Deno 原生支持 TS,無需外部工具。與 Node 不同,Node 的腳本默認(rèn)具有廣泛的權(quán)限,Deno 采用安全第一的方法,要求開發(fā)者顯式授予潛在敏感操作的權(quán)限,比如文件系統(tǒng)訪問或網(wǎng)絡(luò)連接。

雖然 Deno 提供了一個(gè)引人注目的 Node 競(jìng)品,但它還沒有達(dá)到 Node 的廣泛采用程度。因此,本文主要將 Bun 與成熟的 Node 對(duì)比。

入門

有了 Bun,我們可以使用 bun init -y 命令構(gòu)建一個(gè)空項(xiàng)目。我們生成了若干文件,并在 index.ts 中添加一行 console.log('Hello, Bun!'')。在終端中運(yùn)行命令 bun index.ts,即可看到打印了 'Hello, Bun!'。

JS 運(yùn)行時(shí)

JS 運(yùn)行時(shí)是一個(gè)提供使用和運(yùn)行 JS 程序所需的所有組件的環(huán)境。

Node 和 Bun 都是運(yùn)行時(shí)。Node 主要使用 C++ 編寫,而 Bun 則使用一種名為 Zig 的低級(jí)通用編程語言編寫。但這只是冰山一角。讓我們仔細(xì)瞄一下 Bun 單獨(dú)作為運(yùn)行時(shí)的其他差異。

JS 引擎

JS 引擎是一種將我們編寫的 JS 代碼轉(zhuǎn)換為機(jī)器碼的程序,使計(jì)算機(jī)能夠執(zhí)行特定任務(wù)。

Node 使用為 Chrome 瀏覽器提供支持的谷歌 V8 引擎,而 Bun 使用 JSC(JavaScriptCore),這是蘋果為 Safari 瀏覽器開發(fā)的開源 JS 引擎。

V8 和 JSC 有不同的架構(gòu)和優(yōu)化策略。JSC 優(yōu)先考慮更快的啟動(dòng)時(shí)間和減少內(nèi)存占用,以及稍慢的執(zhí)行時(shí)間。另一方面,V8 優(yōu)先考慮快速執(zhí)行,并進(jìn)行更多運(yùn)行時(shí)優(yōu)化,這可能會(huì)導(dǎo)致更多的內(nèi)存占用。

這使得 Bun 速度更快,啟動(dòng)速度比 Node 快 4 倍。

圖片圖片

總結(jié):Bun 的運(yùn)行速度比 Deno 快 2.19 倍,比 Node 快 4.81 倍。

轉(zhuǎn)譯器

雖然 Node 是一個(gè)強(qiáng)大的 JS 運(yùn)行時(shí),但它本身并不支持 TS。要在 Node 環(huán)境中執(zhí)行 TS,需要外部依賴。一種常見方案是使用構(gòu)建步驟將 TS 轉(zhuǎn)換為 JS,然后運(yùn)行生成的 JS 代碼。這是使用 tsx 包的基本設(shè)置:

  1. 安裝
pnpm add -D typescript tsx
  1. 在 package.json 中,您可以設(shè)置腳本來簡(jiǎn)化流程。
{
  "scripts": {
    "dev": "tsx hello-bun.ts"
  }
}
  1. 執(zhí)行

使用上述腳本,您可以輕松運(yùn)行 TS 文件:

pnpm dev

相比之下,Bun 提供了一種更精簡(jiǎn)的方法。它自帶集成到運(yùn)行時(shí)的 JS 轉(zhuǎn)譯器。這允許您直接運(yùn)行 .js/.ts/.jsx/.tsx 文件。Bun 的內(nèi)置轉(zhuǎn)譯器將這些文件無縫轉(zhuǎn)換為普通 JS,無需額外步驟即可立即執(zhí)行。

bun hello-bun.ts

運(yùn)行 TS 文件時(shí),速度差異會(huì)被放大,因?yàn)?Node 在運(yùn)行前需要一個(gè)轉(zhuǎn)譯步驟。

圖片圖片

ESM 和 CJS 兼容性

模塊系統(tǒng)允許開發(fā)者將代碼組織成可復(fù)用片段。在 JS 中,兩個(gè)主要的模塊系統(tǒng)是 CJS(CommonJS)和 ESM(ES 模塊)。CJS 源自 Node,使用 require/module.exports 處理同步模塊,十分適合服務(wù)器端操作。

ES6 引入的 ESM 采用 import/export 語句,提供更加靜態(tài)和異步的方案,并針對(duì)瀏覽器和現(xiàn)代構(gòu)建工具進(jìn)行了優(yōu)化。讓我們?cè)V諸 CJS 使用 colors,訴諸 ESM 使用 chalk,這兩個(gè)流行的包用于向控制臺(tái)添加彩色輸出,并更好地理解模塊系統(tǒng)。

Node 傳統(tǒng)上與 CJS 模塊系統(tǒng)相關(guān)聯(lián)。這是一個(gè)經(jīng)典用法:

// Node 中的 CJS(index.js)
const colors = require('colors')
console.log(colors.green('Hello, Bun!'))

對(duì)于 Node 中的 ESM,您可以二選一:

  1. 您需要在 package.json 中包含 "type": "module"。
  2. 使用 .mjs 擴(kuò)展名。
// Node 中的 ESM(index.mjs)
import chalk from 'chalk'
console.log(chalk.blue('Hello, Bun!'))

從 CJS 過渡到 ESM 是一個(gè)復(fù)雜的過程。在 ESM 推出后,Node 花了 5 年時(shí)間才在沒有實(shí)驗(yàn)標(biāo)志的情況下支持它。盡管如此,CJS 在生態(tài)系統(tǒng)中依然人氣爆棚。

Bun 通過支持兩者而無需任何特殊配置,簡(jiǎn)化了模塊系統(tǒng)。Bun 的亮點(diǎn)功能是,它能夠在同一文件中同時(shí)支持 import/require(),這在 Node 中是不可能事件:

// Bun 中的混合模塊(index.js)
import chalk from 'chalk'
const colors = require('colors')

console.log(chalk.magenta('Hello from chalk!'))
console.log(colors.cyan('Hello from colors!'))

Web APIs

Web API 是瀏覽器筑基的 App 的組成部分,提供用于 Web 交互的工具,比如 fetch/WebSocket。雖然這些已經(jīng)成為瀏覽器標(biāo)準(zhǔn),但它們對(duì) Node 等服務(wù)器端環(huán)境的支持卻不一致。

在 Node 的早期版本中,瀏覽器中常用的 Web 標(biāo)準(zhǔn) API 本身并不支持。開發(fā)者必須依賴 node-fetch 等第三方包來拷貝此功能。雖然但是,從 Node 18 開始,對(duì) fetch API 提供了實(shí)驗(yàn)性支持,可能消除了這些包的需求。

Bun 通過為這些 Web 標(biāo)準(zhǔn) API 提供內(nèi)置支持來簡(jiǎn)化這一過程。開發(fā)者可以直接使用穩(wěn)定的 fetch/Request/Response/WebSocket 等類似瀏覽器的 API,無需任何額外的包。此外,Bun 對(duì)這些 Web API 的原生實(shí)現(xiàn),確保它們比第三方備胎更快、更可靠。

下面是一個(gè)兼容 Node(v18 及更高版本)和 Bun 的示例。雖然它在 Node 中是實(shí)驗(yàn)性的,但同款功能在 Bun 中是穩(wěn)定的:

// Node(v18 及更高版本)的實(shí)驗(yàn)性 fetch,以及 Bun 內(nèi)置的 fetch
async function fetchUserData() {
  const response = await fetch('https://jsonplaceholder.typicode.com/users/1')
  const user = await response.json()
  console.log(user.name)
}

fetchUserData() // Leanne Graham

熱重載

熱重載是一項(xiàng)功能,可在代碼更改時(shí)自動(dòng)刷新或?qū)崟r(shí)重新加載 App 的某些部分,提高開發(fā)者的工作效率,而無需完全重新啟動(dòng)。

在 Node 的生態(tài)系統(tǒng)中,您有一大坨選擇來實(shí)現(xiàn)熱重載。一種流行的工具是 nodemon,它會(huì)硬重啟整個(gè)過程:

nodemon index.js

或者,從 Node 18 開始,引入了一個(gè)實(shí)驗(yàn)性的 --watch 標(biāo)志:

node --watch index.js

這兩種方法的目的都是在代碼更改時(shí)提供 App 的實(shí)時(shí)重新加載。雖然但是,它們的行為可能一龍一豬,尤其是在某些環(huán)境或場(chǎng)景下。

舉個(gè)栗子,nodemon 可能會(huì)導(dǎo)致中斷,比如斷開 HTTP 和 WebSocket 連接,而 --watch 標(biāo)志處于實(shí)驗(yàn)階段,可能無法提供全套功能。

Bun 的熱重載更進(jìn)一步。通過使用 --hot 標(biāo)志運(yùn)行 Bun,可以啟用熱重載:

bun --hot index.ts

與可能需要重新啟動(dòng)整個(gè)進(jìn)程的 Node 方法不同,Bun 會(huì)就地重新加載代碼,而不會(huì)終止舊進(jìn)程。這可確保 HTTP 和 WebSocket 連接保持不間斷,并保留 App 狀態(tài),提供更絲滑的 DX(開發(fā)體驗(yàn))。

Node 兼容性

當(dāng)過渡到新的運(yùn)行時(shí)或環(huán)境時(shí),兼容性通常是開發(fā)者最關(guān)心的問題。Bun 通過將自己定位為 Node 的同款競(jìng)品來解決此問題。這意味著,現(xiàn)有的 Node App 和 npm 包無需任何修改即可與 Bun 無縫集成。確保這種兼容性的關(guān)鍵功能包括但不限于:

  • 支持內(nèi)置 Node 模塊,比如 fs/path/net。
  • 識(shí)別全局變量,比如 __dirname/process。
  • 遵守 Node 模塊解析算法,包括熟悉的 node_modules 結(jié)構(gòu)。

Bun 仍在茁壯成長(zhǎng)。它專為增強(qiáng)開發(fā)工作流程而定制,十分適合資源有限的環(huán)境(比如 serverless 函數(shù))。Bun 背后的團(tuán)隊(duì)正在努力實(shí)現(xiàn)全面的 Node 兼容性以及與流行框架的更好集成。

雖然 Bun 確保兼容 Node,但它不止于此。Bun 附帶高度優(yōu)化的標(biāo)準(zhǔn)庫 API,可以滿足開發(fā)者的剛需。

Bun APIs

  • Bun.file()

延遲加載文件并訪問各種格式的內(nèi)容。此方法比 Node 對(duì)應(yīng)的方法快 10 倍。

// Bun (index.ts)
const file = Bun.file('package.json')
await file.text()

// Node.js (index.mjs)
const fs = require('fs/promises')
const fileContents = await fs.readFile('package.json', 'utf-8')
  • Bun.write()

用于將數(shù)據(jù)(從字符串到 Blob)寫入磁盤的多功能 API。它的寫入速度比 Node 快 3 倍。

// Bun (index.ts)
await Bun.write('index.html', '<html/>')

// Node.js (index.mjs)
const fs = require('fs/promises')
await fs.writeFile('index.html', '<html/>')
  • Bun.serve()

使用 Web 標(biāo)準(zhǔn) API 設(shè)置 HTTP 服務(wù)器或 WebSocket 服務(wù)器。它每秒處理的請(qǐng)求比 Node 多 4 倍,處理的 WebSocket 消息比 Node 的 ws 包多 5 倍。這種后端功能讓人想起開發(fā)者在 Node 中使用 Express 的方式,但還具有 Bun 性能優(yōu)化的額外優(yōu)勢(shì)。

// Bun (index.ts)
Bun.serve({
  port: 3000,
  fetch(request) {
    return new Response('Hello from Bun!')
  }
})

// Node.js (index.mjs)
import http from 'http'
const server = http.createServer((req, res) => {
  res.writeHead(200, { 'Content-Type': 'text/plain' })
  res.end('Hello from Node.js!')
})
server.listen(3000)

Bun 還內(nèi)置了對(duì) sqlite 和密碼的支持。

包管理器

Bun 不僅僅是一個(gè)運(yùn)行時(shí);它還是一個(gè)高級(jí)工具包,其中包括但不限于功能強(qiáng)大的包管理器。如果您發(fā)現(xiàn)自己在依賴安裝過程中耐心等待,Bun 提供了一種令人耳目一新的更快競(jìng)品。即使您不使用 Bun 作為運(yùn)行時(shí),其內(nèi)置的包管理器也可以加快您的開發(fā)工作流程。

瞄一下該表格,將 Bun 命令與 Node 的包管理器 npm 比較:

Bun

npm

目的

bun install

npm install

安裝 package.json 的所有依賴

bun add <package>

npm install <package>

將新依賴添加到項(xiàng)目中

bun add <package> --dev

npm install <package> --dev

添加新的開發(fā)依賴

bun remove <package>

npm uninstall <package>

從項(xiàng)目中刪除依賴

bun update <package>

npm update <package>

將指定包更新到最新版本

bun run <script>

npm run <script>

從 package.json 執(zhí)行指定腳本

乍一看,Bun 的命令似曾相識(shí),但體驗(yàn)卻非同尋常。Bun 擁有比 npm 快幾個(gè)數(shù)量級(jí)的安裝速度。它利用全局模塊緩存來實(shí)現(xiàn)這一點(diǎn),消除從 npm 注冊(cè)表的冗余下載。此外,Bun 采用每個(gè)操作系統(tǒng)可用的最快系統(tǒng)調(diào)用,確保最佳性能。

以下是從緩存安裝入門 Remix 項(xiàng)目依賴的速度比較,Bun vs npm:

圖片圖片

bun CLI 包含一個(gè)兼容 Node 的包管理器,旨在以更快的速度替代 npm/yarn/pnpm。

此外,bun run <command> 只需要 7ms,而 npm run <command> 則需要 176ms。雖然 Node 的 npm 多年來一直是 JS 包管理的標(biāo)準(zhǔn),但 Bun 確實(shí)是一個(gè)速度強(qiáng)大的引擎,并提供了一個(gè)引人注目的競(jìng)品。

打包器

打包是獲取多個(gè) JS 文件,并將它們合并到一個(gè)或多個(gè)優(yōu)化包中的過程。此過程還可能涉及轉(zhuǎn)換,比如將 TS 轉(zhuǎn)換為 JS,或者壓縮代碼減小體積。

在 Node 的生態(tài)系統(tǒng)中,打包通常由第三方工具而不是 Node 本身處理。Node 世界中某些人氣爆棚的打包器包括但不限于 Webpack、Rollup 和 Vite,提供了代碼分割、樹搖優(yōu)化和熱模塊替換等功能。

另一方面,Bun 不僅僅是一個(gè)運(yùn)行時(shí)和包管理器,而且它本身也是一個(gè)打包器。它旨在打包各種平臺(tái)的 JS/TS 代碼,包括瀏覽器中的前端 App(Vue/React App)和 Node。

要使用 Bun 打包,您可以使用一個(gè)簡(jiǎn)單的命令:

bun build ./index.ts --outdir ./build

此命令打包 index.ts 文件,并將結(jié)果輸出到 ./build 目錄中。打包過程非常快,Bun 比 esbuild 快 1.75 倍,并且直接對(duì) Parcel 和 Webpack 等其他打包器“降維打擊”。

圖片圖片

Bun 的一個(gè)天秀功能是它引入了 JS 宏。這允許在打包期間執(zhí)行 JS 函數(shù),并將結(jié)果直接內(nèi)聯(lián)到最終打包中。這種機(jī)制為打包提供了全新的視角。

瞄一下此栗子,其中在打包過程中利用 Bun 的 JS 宏來獲取用戶名。該宏不是運(yùn)行時(shí) API 調(diào)用,而是在打包時(shí)獲取數(shù)據(jù),將結(jié)果直接內(nèi)聯(lián)到最終輸出中:

// users.ts

export async function getUsername() {
  const response = await fetch('https://jsonplaceholder.typicode.com/users/1')
  const user = await response.json()
  return user.name
}

// index.ts

import { getUsername } from './users.ts' with { type: 'macro' }
const username = await getUsername()

// build/index.js

var user = await 'Leanne Graham'
console.log(user)

雖然 Node 擁有成熟的打包工具,但 Bun 提供了一種可集成的、更快的、新穎的競(jìng)品,可以重塑打包格局。

測(cè)試運(yùn)行器

測(cè)試是軟件開發(fā)的一個(gè)重要方面,它確保代碼如期運(yùn)行,并在落地生產(chǎn)之前捕獲潛在問題。除了作為運(yùn)行時(shí)、包管理器和打包器之外,Bun 也是一個(gè)測(cè)試運(yùn)行器。

雖然 Node 開發(fā)者傳統(tǒng)上依賴 Vitest/Jest 來滿足測(cè)試需求,但 Bun 引入了一個(gè)內(nèi)置的測(cè)試運(yùn)行器,它承諾了速度、兼容性和一系列滿足現(xiàn)代開發(fā)工作流程的功能。

Bun 的測(cè)試運(yùn)行器 bun:test 被設(shè)計(jì)為完全兼容 Jest,Jest 是一個(gè)以“expect”風(fēng)格的 API 聞名的測(cè)試框架。這種兼容性確保熟悉 Jest 的開發(fā)者可以無縫銜接到 Bun,而無需經(jīng)歷陡峭的學(xué)習(xí)曲線。

import { test, expect } from 'bun:test'

test('2 + 2', () => {
  expect(2 + 2).toBe(4)
})

使用 bun test 命令執(zhí)行測(cè)試易如反掌。此外,Bun 的運(yùn)行時(shí)支持開箱即用的 TS/JSX,無需額外的配置或插件。

從 Vitest/Jest 遷移

Bun 對(duì)兼容性的承諾體現(xiàn)在對(duì) Jest 全局導(dǎo)入的支持。舉個(gè)栗子,從 @jest/globals 或 vitest 導(dǎo)入將在內(nèi)部重新映射到 bun:test。這意味著,現(xiàn)有的測(cè)試套件可以在 Bun 上運(yùn)行,無需任何代碼修改。

// index.test.ts
import { test } from '@jest/globals'

describe('test suite', () => {
  test('addition', () => {
    expect(1 + 1).toBe(2)
  })
})

性能基準(zhǔn)

Bun 的測(cè)試運(yùn)行器不僅涉及兼容性;還涉及速度。在針對(duì) Zod 測(cè)試套件的基準(zhǔn)測(cè)試中,Bun 比 Jest 快 13 倍,比 Vitest 快 8 倍。Bun 的匹配器進(jìn)一步凸顯了這種速度優(yōu)勢(shì),它是在快速原生代碼中實(shí)現(xiàn)的。舉個(gè)栗子,Bun 中的 expect().toEqual() 比 Jest 快 100 倍,比 Vitest 快 10 倍。

無論您是想遷移現(xiàn)有測(cè)試還是啟動(dòng)新項(xiàng)目,Bun 都可以提供符合現(xiàn)代開發(fā)需求的強(qiáng)大測(cè)試環(huán)境。

完結(jié)撒花

Node 古往今來一直是 JS 世界的基石,設(shè)定基準(zhǔn)并引領(lǐng)開發(fā)者。雖然但是,Bun 正以一位不容小覷的挑戰(zhàn)者身份粉墨登場(chǎng),破而后立。

雖然 Bun 還處于早期發(fā)展階段,但它名噪一時(shí)毋庸置疑。目前,它針對(duì) MacOS 和 Linux 進(jìn)行了優(yōu)化,雖然 Windows 的支持正在進(jìn)行中,但某些功能即將推出。憑借它提供的一切,Bun 無疑是您應(yīng)該考慮探索的工具包。

免責(zé)聲明

本文屬于是語冰的直男翻譯了屬于是,略有刪改,僅供粉絲參考,英文原味版請(qǐng)傳送 Bun vs Node.js: Everything you need to know[1]。

責(zé)任編輯:武曉燕 來源: 人貓神話
相關(guān)推薦

2020-07-10 07:58:14

Linux

2024-11-15 11:11:48

2025-10-30 07:20:00

2022-05-18 09:01:19

JSONJavaScript

2022-08-19 10:31:32

Kafka大數(shù)據(jù)

2018-10-26 14:10:21

2015-10-20 09:46:33

HTTP網(wǎng)絡(luò)協(xié)議

2019-01-30 14:14:16

LinuxUNIX操作系統(tǒng)

2023-05-08 15:25:19

Python編程語言編碼技巧

2023-04-20 14:31:20

Python開發(fā)教程

2024-06-13 09:10:22

2024-01-09 13:58:22

PandasPython數(shù)據(jù)分析

2015-08-17 16:05:35

javascript對(duì)象編程

2023-12-26 12:10:13

2022-08-26 14:46:31

機(jī)器學(xué)習(xí)算法線性回歸

2024-07-26 08:32:44

panic?Go語言

2023-09-12 11:25:15

2019-11-06 10:56:59

Python數(shù)據(jù)分析TGI

2022-12-01 08:15:41

CGOswitcherror

2022-11-03 07:48:27

CSSat-rule
點(diǎn)贊
收藏

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

成人免费看片98| 亚洲xxxx2d动漫1| 欧美 日韩 人妻 高清 中文| 久久国产精品久久w女人spa| 中文字幕欧美日韩va免费视频| 91pony九色| 超碰资源在线| 国产精品嫩草久久久久| 国产精品免费一区二区| 黄色片视频免费| 亚洲经典一区| 亚洲亚裔videos黑人hd| 熟妇女人妻丰满少妇中文字幕| 日本在线播放一二三区| 亚洲色图欧洲色图婷婷| 明星裸体视频一区二区| 国产美女精品视频国产| 久久伊人亚洲| 国内精品久久久久久久久| 国产又黄又粗又猛又爽的| 国产精品第七页| 香蕉视频免费看| 紧缚奴在线一区二区三区| 午夜精品免费视频| 在线看的片片片免费| 伊甸园亚洲一区| 欧美成人综合网站| 蜜臀一区二区三区精品免费视频| 性欧美freesex顶级少妇| 亚洲欧美一区二区久久| 日韩欧美一区二区视频在线播放 | 在线一区二区三区四区| 伊人网在线免费| 91涩漫在线观看| 久久久蜜臀国产一区二区| 成人性色av| 91精品视频免费在线观看| 亚洲美女黄色| 欧美精品久久久久a| 91视频青青草| 国产精品国产一区| 一区二区在线视频| 欧美做受xxxxxⅹ性视频| 另类春色校园亚洲| 亚洲国产精品va在线看黑人| 俄罗斯女人裸体性做爰| 国产午夜精品一区在线观看| 欧美日韩视频一区二区| 欧美伦理视频在线观看| 不卡av播放| 欧美午夜美女看片| 黄色片一级视频| 欧美羞羞视频| 91精品办公室少妇高潮对白| 国产日产欧美视频| 亚洲承认视频| 色狠狠色狠狠综合| 亚洲级视频在线观看免费1级| 性欧美18一19内谢| 日本在线观看网站| 国产精品午夜电影| 天堂资源在线亚洲视频| www.国产精品.com| 国产精品美女久久久久高潮| 一区二区三区国产福利| 免费看a在线观看| 中文字幕一区二区三区在线播放 | 久久亚洲欧美日韩精品专区| 人人干在线观看| 久久综合88| 久久精品视频免费播放| 九九热只有精品| 亚洲国产高清一区| 欧美亚洲第一区| 天天爽夜夜爽人人爽| 人人精品人人爱| 成人午夜小视频| 成人av无码一区二区三区| 成人免费在线观看视频| 国产大片一区二区| 999日本视频| 日批视频在线播放| 久久久蜜桃精品| 亚洲精品一品区二品区三品区 | 久久精品夜色噜噜亚洲a∨| 欧美色欧美亚洲另类七区| 91在线看黄| 夜夜嗨av一区二区三区| 人妻熟妇乱又伦精品视频| 欧美日韩在线精品一区二区三区激情综合 | 在线观看免费小视频| 99久久久久| 欧美激情一区二区久久久| 9i精品福利一区二区三区| 久久精品理论片| 国产激情一区二区三区在线观看| 偷拍精品一区二区三区| 中文字幕精品综合| 青青在线视频免费观看| 成人黄色免费短视频| 91精品国产全国免费观看| aaaaaav| 亚洲精品一二三区区别| av电影在线观看完整版一区二区| 欧美一乱一性一交一视频| 中文天堂在线播放| 成人丝袜视频网| 色综合电影网| 青春草免费在线视频| 欧美伊人久久大香线蕉综合69 | 日韩三级视频在线| 奇米一区二区三区av| 国产亚洲精品久久飘花| 蜜桃视频在线观看www社区| 婷婷丁香激情综合| 一级黄色片国产| 国产区精品区| 97免费在线视频| 在线观看免费观看在线| 99热99精品| 乱熟女高潮一区二区在线| 欧洲亚洲两性| 亚洲国产中文字幕久久网| 黄色a级片在线观看| 久久一区亚洲| 激情视频在线观看一区二区三区| www.久久久久.com| 欧美综合视频在线观看| 亚洲欧美日韩不卡| 怡红院成永久免费人全部视频| 九色综合狠狠综合久久| 日韩wuma| 欧美电影免费观看| 亚洲国产精品一区二区久| 精品国产精品国产精品| 久久精品国产亚洲a| 日本一区二区不卡高清更新| av蜜臀在线| 精品国产一区二区三区av性色| 国产又粗又硬又长又爽| 久久99国产精品久久99 | wwwww在线观看| 香蕉国产精品| 91免费的视频在线播放| 黄色的网站在线观看| 欧美精品日日鲁夜夜添| 日韩精品免费一线在线观看| 国产综合精品在线| 日韩福利视频导航| 日韩欧美第二区在线观看| 蜜桃视频在线观看免费视频| 亚洲成人精品久久久| 日韩精品一区二区不卡| 97aⅴ精品视频一二三区| 人体内射精一区二区三区| 午夜免费欧美电影| 欧美成人精品激情在线观看| 性做久久久久久久久久| 亚洲第一狼人社区| 国产xxxx视频| 亚洲永久在线| 欧美中日韩免费视频| 日本肉肉一区| 日韩有码视频在线| 精品国产av一区二区| 亚洲综合视频在线| 这里只有精品在线观看视频| 蘑菇福利视频一区播放| 日韩av电影免费在线观看| 国产精品99久久久久久董美香| 精品国产欧美一区二区五十路| 国产内射老熟女aaaa∵| 亚洲成av人片| 亚洲国产天堂av| 激情深爱一区二区| 五十路熟女丰满大屁股| 亚洲人成网亚洲欧洲无码| 国产精品香蕉av| 羞羞视频在线观看免费| 日韩精品亚洲精品| 中文字幕日本人妻久久久免费| 亚洲蜜臀av乱码久久精品| 午夜不卡久久精品无码免费| 久热精品在线| 大桥未久一区二区| 欧美黑白配在线| 国产久一一精品| 好吊日av在线| 亚洲天堂2020| 国产黄频在线观看| 欧美日韩一区二区免费视频| 五月激情四射婷婷| 粉嫩绯色av一区二区在线观看| 国产免费一区二区三区视频| 91亚洲国产成人久久精品| 国产伦精品一区二区三区| 97精品国产99久久久久久免费| 欧美成人免费在线观看| 欧美色18zzzzxxxxx| 日韩精品专区在线影院重磅| 一二三区免费视频| 亚洲综合网站在线观看| 国产午夜福利一区| 99久久婷婷国产精品综合| 亚洲成人福利在线| 一二三区精品| 白白操在线视频| 日韩精品2区| 久久久久se| 欧美国产中文高清| 国产精品日韩欧美综合| 筱崎爱全乳无删减在线观看 | 日日骚欧美日韩| 国产成人一区二区三区别| 欧美精品尤物在线观看| 国产麻豆乱码精品一区二区三区| 久久精品超碰| 国产精品96久久久久久| 精精国产xxxx视频在线播放| 久久资源免费视频| 第三区美女视频在线| 日韩电影网在线| 亚洲成人77777| 这里是久久伊人| 亚洲最新av网站| 欧美性三三影院| 潘金莲一级淫片aaaaaa播放| 亚洲成在线观看| 久久久99精品| 一区二区三区四区精品在线视频| 香蕉成人在线视频| 欧美国产一区视频在线观看| 久久久无码人妻精品一区| 成人精品一区二区三区四区 | 国产在线视频在线| 手机在线电影一区| 先锋影音一区二区三区| 国产精品一区高清| 免费看国产精品一二区视频| 国产精品zjzjzj在线观看| 成人免费91在线看| aaa国产精品视频| av成人综合网| 99精品在免费线中文字幕网站一区| 91色在线观看| 日韩精品视频在线看| 91九色在线观看| 97人人澡人人爽91综合色| 国产精品12| 国产在线播放精品| 国产一区精品视频| 精品五月天堂| 麻豆91蜜桃| 亚洲影院天堂中文av色| 日韩性感在线| 日韩国产欧美| 激情五月五月婷婷| 亚洲欧美一级二级三级| 国产自产在线视频| 亚洲一区图片| 婷婷激情四射五月天| 蜜桃视频一区二区| 99久久99精品| 成人美女视频在线观看| 黄色国产在线观看| 国产免费成人在线视频| 99热这里只有精品4| 亚洲乱码中文字幕| 国产系列精品av| 欧美性生交xxxxxdddd| 午夜久久久久久久久久影院| 欧美日韩高清一区二区| a在线观看视频| 亚洲电影在线看| 国产中文字幕在线| 久久久国产一区二区| 免费毛片在线看片免费丝瓜视频 | 欧美bbbbbbbbbbbb精品| 91久久精品国产91性色tv| 国产精品午夜福利| 亚洲精品98久久久久久中文字幕| freemovies性欧美| 久久999免费视频| 亚洲黄色中文字幕| 成人福利在线视频| 久久久久97| 亚洲欧美久久久久一区二区三区| 欧美特黄一级| 99视频在线免费| 国产黄色91视频| 伊人网在线视频观看| 亚洲色图在线播放| 亚洲天堂一区在线观看| 91久久奴性调教| a天堂视频在线| 夜夜嗨av一区二区三区免费区| 青青青草视频在线| 国产精品网址在线| 欧美激情影院| 日韩精品一区二区三区电影| 久久精品九九| 亚洲一区二区三区四区av| 中文一区一区三区高中清不卡| 日本三级午夜理伦三级三| 欧美亚洲国产一区二区三区| 五月天丁香视频| 欧美激情2020午夜免费观看| 福利一区视频| 久久久久se| 在线成人av| 日本一区二区三区在线免费观看| 国产日产欧美一区二区三区| 九九九在线视频| 69精品人人人人| 1024免费在线视频| 全球成人中文在线| 97se亚洲| 99久久久精品视频| 国产一区二区免费在线| 91资源在线播放| 日韩欧美亚洲综合| 五月婷婷狠狠干| 久久久久久久久亚洲| 国产精品视频一区二区三区| 亚洲精品欧洲精品| 久久狠狠一本精品综合网| 在线免费播放av| 亚洲国产欧美在线| www.热久久| 欧美成在线观看| 亚洲人成777| 亚洲综合第一| 久久99精品久久只有精品| 性猛交娇小69hd| 色综合久久久网| 久久经典视频| 日韩av电影免费观看高清| 秋霞蜜臀av久久电影网免费| 欧美成人三级在线视频| 成人免费看的视频| 天天操天天射天天爽| 精品福利一区二区三区 | 亚洲国产视频一区| 亚洲av无码乱码国产精品久久| 日韩一区二区三区xxxx| 四虎国产精品成人免费影视| 亚洲一区免费看| 激情图片小说一区| 国产又黄又爽又无遮挡| 日韩精品一区二区三区在线播放 | 婷婷综合亚洲| 特黄视频免费观看| 亚洲女人****多毛耸耸8| 朝桐光av在线一区二区三区| 欧美激情精品久久久久久大尺度 | 六月丁香综合在线视频| 在线观看日本黄色| 欧美一区二区三区在线| 女囚岛在线观看| 久久草视频在线看| 可以看av的网站久久看| 手机看片国产日韩| 欧美一区二区三区四区久久| 色婷婷视频在线观看| 精品一区二区视频| 日本女优在线视频一区二区| 你懂得在线观看| 欧美成人高清电影在线| 涩涩视频在线免费看| 亚洲精品高清国产一线久久| 精品一区二区久久久| 久久久久黄色片| 日韩精品免费视频| 88xx成人网| 污污污污污污www网站免费| 91丨porny丨中文| 在线观看毛片网站| 欧美激情影音先锋| 国产精品三级| 中文字幕欧美视频| 精品国产成人av| 超碰免费在线| 国产成人免费电影| 玖玖精品视频| 久久老司机精品视频| 亚洲欧美中文日韩v在线观看| 国产精品毛片aⅴ一区二区三区| 欧美视频在线免费播放| 中文字幕av免费专区久久| 国产aⅴ一区二区三区| 欧美做爰性生交视频| 国产精品麻豆久久| 日韩av一二区| 欧美一级日韩不卡播放免费| 在线天堂资源www在线污| 一区二区精品视频| 99久久精品费精品国产一区二区| 在线免费观看av片| 69av成年福利视频| 亚洲欧美综合久久久|