久久亚洲成a人片熟女精品色一区二区三区|国产精品视频第一精品视频|av天堂热无码手机版|亚洲?v无码久久无遮挡|国产精品偷伦视频免费观看国产|麻豆国产自产精品丰满熟妇|av无码av不卡一区二区|久久亚洲精品中文字

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營的一線實(shí)戰(zhàn)洞察。

基于Vue的電商購物平臺(tái)項(xiàng)目實(shí)踐:從前后端分離架構(gòu)到部署落地

基于Vue的電商購物平臺(tái)項(xiàng)目實(shí)踐:從前后端分離架構(gòu)到部署落地 做這種“基于Vue的電商購物平臺(tái)”項(xiàng)目我的第一反應(yīng)是這大概率不是一個(gè)人閑著沒事寫的玩具而是畢業(yè)設(shè)計(jì)或者課程設(shè)計(jì)的標(biāo)配需求。用戶要的不是一堆概念而是一個(gè)能真正跑起來、能講清楚、能寫進(jìn)論文的完整閉環(huán)系統(tǒng)。我前前后后幫人做過好幾個(gè)類似的項(xiàng)目從零搭建到交付源碼、再到陪跑答辯踩過的坑比很多人寫過的代碼都多。這篇就把我實(shí)際做這個(gè)項(xiàng)目時(shí)的完整思路、技術(shù)選型、數(shù)據(jù)庫設(shè)計(jì)、前端交互邏輯、以及最后聯(lián)調(diào)部署時(shí)最容易翻車的幾個(gè)點(diǎn)一次性講透。這個(gè)項(xiàng)目的東西不難但東西多。前端Vue、后端JavaSpring Boot那一套、MySQL數(shù)據(jù)庫再加上商品瀏覽、購物車、訂單、支付模擬、后臺(tái)管理這幾個(gè)核心模塊串起來就是一個(gè)標(biāo)準(zhǔn)的前后端分離電商系統(tǒng)。適合正在準(zhǔn)備畢業(yè)設(shè)計(jì)、簡歷上缺一個(gè)像樣全棧項(xiàng)目的同學(xué)也適合想搞懂“電商網(wǎng)站背后到底怎么運(yùn)轉(zhuǎn)”的初學(xué)者直接照著抄作業(yè)。1. 項(xiàng)目整體設(shè)計(jì)與技術(shù)選型1.1 核心需求與系統(tǒng)邊界在動(dòng)手寫代碼之前我習(xí)慣先把用戶需求和系統(tǒng)邊界畫清楚。電商購物平臺(tái)聽起來很大但作為一個(gè)可交付的畢設(shè)項(xiàng)目核心業(yè)務(wù)其實(shí)就那么幾條線用戶注冊登錄、瀏覽商品、加入購物車、提交訂單、模擬支付、后臺(tái)管理商品和訂單。這里我要多說一句很多同學(xué)一上來就想做秒殺、拼團(tuán)、優(yōu)惠券、積分商城這些功能不是不能加但如果你連最基礎(chǔ)的“下單減庫存”都還沒理清楚加再多花活都是給自己埋雷。畢設(shè)項(xiàng)目講究的是業(yè)務(wù)閉環(huán)完整而不是功能數(shù)量多。一個(gè)能從注冊走到支付完成、后臺(tái)能看到訂單狀態(tài)的系統(tǒng)已經(jīng)足夠說明你理解了電商的核心流程。我做的這個(gè)版本用戶端包含注冊登錄、商品列表、商品詳情、購物車、訂單確認(rèn)、支付成功頁、個(gè)人訂單列表管理端包含商品管理、分類管理、訂單管理、用戶管理、數(shù)據(jù)統(tǒng)計(jì)看板。數(shù)據(jù)統(tǒng)計(jì)看板是后來加的需求用ECharts做了簡單的柱狀圖和折線圖展示銷售額趨勢和商品銷量排行這正好也符合很多題目里寫的“數(shù)據(jù)可視化”。1.2 前端技術(shù)棧為什么是Vue題目里直接寫了“基于Vue”所以前端框架基本是鎖定的。但Vue也分Vue2和Vue3還有一個(gè)Element UI和Element Plus的選擇問題。我實(shí)際開發(fā)中用的是Vue2 Element UI Vuex Vue Router Axios的組合原因有兩點(diǎn)。第一Vue2生態(tài)成熟穩(wěn)定網(wǎng)上資料最多遇到問題基本都能搜到答案。雖然Vue3是趨勢但很多高校的課程和企業(yè)舊項(xiàng)目還是以Vue2為主答辯時(shí)老師也更熟悉這套東西。第二Element UI的組件風(fēng)格非常適合后臺(tái)管理系統(tǒng)和電商前臺(tái)頁面表格、表單、分頁、彈窗這些現(xiàn)成組件拿來即用能把大量時(shí)間省下來投入到業(yè)務(wù)邏輯上。當(dāng)然如果你是從零開始學(xué)也可以直接用Vue3 Element Plus Pinia代碼寫起來更現(xiàn)代一點(diǎn)。項(xiàng)目核心是業(yè)務(wù)閉環(huán)不是框架版本這個(gè)道理要搞清楚。前端項(xiàng)目的目錄結(jié)構(gòu)我習(xí)慣這樣安排src/ api/ // 接口請求封裝 assets/ // 靜態(tài)資源 components/ // 公共組件頂部導(dǎo)航、商品卡片等 router/ // 路由配置 store/ // Vuex狀態(tài)管理 views/ // 頁面視圖 home/ // 首頁 goods/ // 商品列表與詳情 cart/ // 購物車 order/ // 訂單確認(rèn)與列表 user/ // 個(gè)人中心 admin/ // 后臺(tái)管理 utils/ // 工具函數(shù)request封裝、格式化等1.3 后端技術(shù)選型Java Spring Boot后端我選的是Spring Boot MyBatis Plus MySQL。為什么不用PHP、Python、C#不是它們不好而是對于這種“業(yè)務(wù)閉環(huán)型”項(xiàng)目Spring Boot有幾點(diǎn)天然優(yōu)勢Maven管理依賴方便MyBatis Plus的代碼生成器能省掉大量重復(fù)的CRUD代碼Spring Security或者攔截器做登錄鑒權(quán)也成熟。還有一個(gè)很現(xiàn)實(shí)的理由畢業(yè)設(shè)計(jì)答辯老師最熟悉的技術(shù)棧就是Java你拿Java寫的東西老師起碼挑不出“技術(shù)棧太偏”的毛病。用Python寫Django或者Flask也可以但用Java的人更多、參考代碼更多遇到問題更好解決。后端項(xiàng)目結(jié)構(gòu)就是經(jīng)典的三層架構(gòu)controller/ // 接收請求返回結(jié)果 service/ // 業(yè)務(wù)邏輯層 mapper/ // 數(shù)據(jù)訪問層MyBatis Plus entity/ // 數(shù)據(jù)庫實(shí)體 config/ // 攔截器、跨域配置等 common/ // 統(tǒng)一返回結(jié)果、異常處理這里的核心思路是讓每層各司其職比如下單這個(gè)操作Controller只負(fù)責(zé)接收參數(shù)和返回結(jié)果真正“檢查庫存、扣減庫存、生成訂單號、創(chuàng)建訂單、清空購物車”這一串動(dòng)作全部放在Service里完成。這樣代碼邏輯清晰寫論文的時(shí)候畫個(gè)架構(gòu)圖也順理成章。1.4 為什么堅(jiān)持前后端分離現(xiàn)在做項(xiàng)目第一反應(yīng)就應(yīng)該是前后端分離。前端Vue跑在8080端口后端Spring Boot跑在8081端口通過接口交互前端通過Axios發(fā)起請求后端返回JSON數(shù)據(jù)。前后端分離的好處是開發(fā)時(shí)兩邊可以并行前端用模擬數(shù)據(jù)也能先跑起來部署時(shí)前端打包成靜態(tài)文件扔到Nginx后端單獨(dú)啟動(dòng)答辯演示時(shí)前端頁面掛了也不影響后端邏輯的講解。這個(gè)架構(gòu)寫進(jìn)論文里也是加分項(xiàng)因?yàn)樗悄壳捌髽I(yè)開發(fā)的主流方式。開發(fā)階段我用Vue CLI的代理解決跨域問題配置在vue.config.js里module.exports { devServer: { proxy: { /api: { target: http://localhost:8081, changeOrigin: true } } } }這樣前端請求的/api/user/login會(huì)自動(dòng)轉(zhuǎn)發(fā)到后端的http://localhost:8081/api/user/login不用在后端單獨(dú)配CORS省了很多事。2. 環(huán)境準(zhǔn)備與項(xiàng)目啟動(dòng)2.1 本地開發(fā)環(huán)境清單標(biāo)準(zhǔn)的一套環(huán)境配置如下版本不需要特別新穩(wěn)定即可軟件版本建議說明JDK1.8大多數(shù)學(xué)校和企業(yè)還在用8別盲目上17MySQL5.7或8.08.0注意驅(qū)動(dòng)配置Node.js14.x或16.xVue2項(xiàng)目建議14以上IDEA任意版本社區(qū)版也能用VSCode任意版本寫前端用Navicat可選可視化數(shù)據(jù)庫管理這里有個(gè)我實(shí)際踩過的坑Node版本不能太新。之前某同學(xué)直接用Node 18跑Vue2項(xiàng)目結(jié)果node-sass安裝失敗報(bào)一堆紅字錯(cuò)誤。這不是你的代碼問題是node-sass對新版Node支持不到位。解決方案有兩個(gè)一是把Node版本降到16二是把node-sass換成sassdart-sass。我后來統(tǒng)一用dart-sass干凈利落。2.2 數(shù)據(jù)庫初始化數(shù)據(jù)庫不需要手動(dòng)建表。項(xiàng)目自帶的sql目錄下有一個(gè)mall.sql腳本用Navicat或者命令行直接執(zhí)行就能把所有表結(jié)構(gòu)、初始數(shù)據(jù)一次性導(dǎo)入。執(zhí)行完以后數(shù)據(jù)庫名是mall里面包含用戶表、商品表、訂單表、購物車表、分類表這些核心表初始數(shù)據(jù)里有測試賬號管理員和普通用戶以及一批商品數(shù)據(jù)方便演示。這種“自帶腳本直接跑”的方式對交付非常重要。你想想如果別人拿到你的源碼還要對著幾十行SQL到處找哪里有缺失體驗(yàn)會(huì)非常差。所以我做項(xiàng)目的時(shí)候SQL腳本一定會(huì)寫全表結(jié)構(gòu)、測試數(shù)據(jù)、索引全部包含在一個(gè)文件里。2.3 啟動(dòng)順序和驗(yàn)證啟動(dòng)是整個(gè)流程里最容易出問題的環(huán)節(jié)我寫一個(gè)標(biāo)準(zhǔn)順序啟動(dòng)MySQL確認(rèn)3306端口正常監(jiān)聽用IDEA打開后端項(xiàng)目修改application.yml里的數(shù)據(jù)庫賬號密碼啟動(dòng)Spring Boot命令行進(jìn)入前端項(xiàng)目目錄執(zhí)行npm install安裝依賴執(zhí)行npm run serve啟動(dòng)前端開發(fā)服務(wù)瀏覽器訪問http://localhost:8080看到首頁說明啟動(dòng)成功驗(yàn)證后端是否正??梢灾苯釉跒g覽器訪問http://localhost:8081/api/goods/list如果返回了商品列表的JSON數(shù)據(jù)說明后端、數(shù)據(jù)庫、接口鏈路全是通的。啟動(dòng)過程中如果發(fā)現(xiàn)端口被占用用下面命令查netstat -ano | findstr 8081查到PID之后去任務(wù)管理器結(jié)束對應(yīng)進(jìn)程就行。這是最常用的一招。3. 數(shù)據(jù)庫設(shè)計(jì)表結(jié)構(gòu)與字段規(guī)劃3.1 用戶表設(shè)計(jì)用戶表是系統(tǒng)的基座登錄、注冊、管理員身份全都靠它。CREATE TABLE user ( id int(11) NOT NULL AUTO_INCREMENT, username varchar(50) NOT NULL COMMENT 用戶名, password varchar(100) NOT NULL COMMENT 密碼BCrypt加密, nickname varchar(50) DEFAULT NULL COMMENT 昵稱, role tinyint(1) NOT NULL DEFAULT 0 COMMENT 角色0-普通用戶1-管理員, phone varchar(20) DEFAULT NULL COMMENT 手機(jī)號, avatar varchar(255) DEFAULT NULL COMMENT 頭像地址, create_time datetime DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (id), UNIQUE KEY uk_username (username) ) ENGINEInnoDB DEFAULT CHARSETutf8mb4;這里有兩個(gè)關(guān)鍵細(xì)節(jié)。第一密碼一定要加密存儲(chǔ)我用的BCryptSpring Security自帶的加密工具安全且答辯時(shí)能講出所以然。第二用戶名加了唯一索引防止重復(fù)注冊。就這么一個(gè)簡單的字段設(shè)計(jì)當(dāng)時(shí)答辯時(shí)老師問“你這個(gè)用戶表怎么保證數(shù)據(jù)一致性”直接用唯一索引回答就可以了。3.2 商品表與分類表商品表是系統(tǒng)的門面首頁和列表頁展示的信息都來自這張表。CREATE TABLE category ( id int(11) NOT NULL AUTO_INCREMENT, name varchar(50) NOT NULL COMMENT 分類名, sort int(11) DEFAULT 0 COMMENT 排序權(quán)重, PRIMARY KEY (id) ) ENGINEInnoDB DEFAULT CHARSETutf8mb4; CREATE TABLE goods ( id int(11) NOT NULL AUTO_INCREMENT, category_id int(11) NOT NULL COMMENT 所屬分類, name varchar(200) NOT NULL COMMENT 商品名稱, subtitle varchar(255) DEFAULT NULL COMMENT 副標(biāo)題, main_image varchar(500) DEFAULT NULL COMMENT 主圖地址, price decimal(10,2) NOT NULL COMMENT 價(jià)格單位元, stock int(11) NOT NULL DEFAULT 0 COMMENT 庫存, sales int(11) NOT NULL DEFAULT 0 COMMENT 銷量, status tinyint(1) NOT NULL DEFAULT 1 COMMENT 狀態(tài)1-上架0-下架, detail text COMMENT 商品詳情, create_time datetime DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (id), KEY idx_category (category_id) ) ENGINEInnoDB DEFAULT CHARSETutf8mb4;價(jià)格字段我用的decimal(10,2)而不是float這是個(gè)非常容易被忽略的坑。float存在精度丟失問題兩個(gè)浮點(diǎn)數(shù)做加減運(yùn)算結(jié)果會(huì)有偏差電商場景下算錯(cuò)一毛錢都受不了。decimal是定點(diǎn)數(shù)精度由你自己定義10,2表示總共10位數(shù)、小數(shù)2位百萬級的商品價(jià)格足夠用了。3.3 購物車表與訂單相關(guān)表購物車表的關(guān)鍵設(shè)計(jì)在于狀態(tài)位CREATE TABLE cart_item ( id int(11) NOT NULL AUTO_INCREMENT, user_id int(11) NOT NULL, goods_id int(11) NOT NULL, quantity int(11) NOT NULL DEFAULT 1, checked tinyint(1) NOT NULL DEFAULT 1 COMMENT 是否選中1-選中0-未選中, create_time datetime DEFAULT CURRENT_TIMESTAMP, update_time datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (id), UNIQUE KEY uk_user_goods (user_id,goods_id) ) ENGINEInnoDB DEFAULT CHARSETutf8mb4;uk_user_goods這個(gè)聯(lián)合唯一索引特別重要。它保證了同一個(gè)用戶對同一個(gè)商品只會(huì)存在一條購物車記錄用戶反復(fù)點(diǎn)擊“加入購物車”后端要做的是把quantity加1而不是插入一條新記錄。很多初學(xué)者做購物車沒有加這個(gè)唯一約束結(jié)果用戶點(diǎn)一次加購就多一條記錄購物車變成流水賬后面改起來非常費(fèi)勁。訂單相關(guān)表拆成主表order和明細(xì)表order_item。主表存訂單編號、用戶ID、訂單總價(jià)、訂單狀態(tài)、收貨地址、創(chuàng)建時(shí)間明細(xì)表存訂單里每個(gè)商品的信息商品ID、商品名稱冗余存儲(chǔ)、單價(jià)、數(shù)量。為什么要拆兩張表因?yàn)橐粋€(gè)訂單包含多個(gè)商品一張表存不下。如果只存一個(gè)合并的商品字符串比如“蘋果x2,香蕉x1”之后想做訂單統(tǒng)計(jì)、銷量分析就完全沒法查了。下單時(shí)的庫存扣減邏輯是這樣的校驗(yàn)庫存充足 - 扣減庫存 - 生成訂單 - 返回訂單號??蹘齑婧蜕捎唵伪仨毞旁谕粋€(gè)事務(wù)里否則會(huì)出現(xiàn)庫存扣了但訂單沒生成、或者訂單生成了但庫存沒扣的情況。事務(wù)我用Transactional注解Spring管理一句話的事。3.4 表關(guān)系與查詢思路用戶、訂單、購物車、商品之間的關(guān)系一句話總結(jié)用戶1對多訂單訂單1對多訂單明細(xì)訂單明細(xì)多對1商品購物車是用戶和商品的多對多關(guān)系表。理解了這條關(guān)系鏈寫SQL基本不會(huì)迷路。后臺(tái)管理端查“某用戶的訂單詳情”這種SQL核心就是join兩三次表SELECT o.id, o.order_no, o.payment, o.status, oi.goods_name, oi.goods_price, oi.quantity FROM order o LEFT JOIN order_item oi ON o.id oi.order_id WHERE o.user_id #{userId} ORDER BY o.create_time DESC4. 功能模塊實(shí)現(xiàn)前端核心交互與后端業(yè)務(wù)閉環(huán)4.1 注冊登錄與權(quán)限控制登錄功能的實(shí)現(xiàn)分三步前端表單校驗(yàn) - 后端驗(yàn)證用戶名密碼 - 簽發(fā)Token返回 - 前端存儲(chǔ)Token并跳轉(zhuǎn)首頁。Token我用的是JWT一段由頭部、載荷、簽名組成的字符串。用戶在登錄成功后拿到Token之后每次請求都帶上后端通過攔截器校驗(yàn)Token的合法性再從Token中解析出用戶ID和角色。攔截器是實(shí)現(xiàn)權(quán)限控制的關(guān)鍵核心思路是放行登錄、注冊、商品列表這些公開接口攔截需要登錄才能訪問的接口如下單、查看購物車、后臺(tái)管理接口。public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) { String token request.getHeader(Authorization); // 解析token失敗則返回401提示未登錄 // 解析成功則將用戶信息放入request上下文供后續(xù)Service使用 }前端配合這位使用Axios攔截器所有請求自動(dòng)從localStorage取Token并放進(jìn)請求頭service.interceptors.request.use(config { const token localStorage.getItem(token) if (token) { config.headers[Authorization] token } return config })前端路由還需要做權(quán)限守衛(wèi)未登錄用戶訪問“我的訂單”頁面時(shí)直接重定向到登錄頁router.beforeEach((to, from, next) { const token localStorage.getItem(token) if (to.path.startsWith(/order) !token) { next(/login) } else { next() } })4.2 商品列表與詳情展示商品列表用的是Element UI的el-card組件加自定義商品卡片每張卡片顯示商品圖、名稱、價(jià)格點(diǎn)擊跳轉(zhuǎn)到詳情頁。列表數(shù)據(jù)是后端接口返回的分頁參數(shù)pageNum和pageSize通過GET請求傳給后端。商品詳情頁除了基本信息展示還有一個(gè)“加入購物車”和一個(gè)“立即購買”按鈕。加入購物車就是調(diào)用后端接口傳入goodsId和quantity立即購買則先判斷是否登錄未登錄跳登錄頁已登錄把這件商品作為選中狀態(tài)跳轉(zhuǎn)到訂單確認(rèn)頁。針對商品圖片很多畢設(shè)項(xiàng)目用的是本地圖片地址比如/upload/xxx.jpg。我建議直接存一個(gè)圖片URL或者把圖片放到后端的resources/static/upload下通過Spring Boot的靜態(tài)資源映射來訪問。不要存base64到數(shù)據(jù)庫里那會(huì)讓表體量暴漲且查詢極慢。4.3 購物車業(yè)務(wù)邏輯購物車頁面的核心操作是勾選商品、修改數(shù)量、刪除商品、全選、計(jì)算總價(jià)??們r(jià)的計(jì)算前端做還是后端做我建議展示用前端實(shí)時(shí)算下單時(shí)以后端重新計(jì)算為準(zhǔn)。后端計(jì)算訂單金額是一個(gè)很關(guān)鍵的信任邊界。用戶在前端看到的金額只是“預(yù)估”真正下單時(shí)后端要重新從數(shù)據(jù)庫讀取商品的價(jià)格乘以數(shù)量累加出總價(jià)。如果直接從頁面?zhèn)饕粋€(gè)總價(jià)給后端那用戶完全可以改接口參數(shù)把訂單金額改成0.01元下單這是嚴(yán)重的邏輯漏洞。所以“后端為準(zhǔn)”是必須堅(jiān)持的原則。購物車接口設(shè)計(jì)大概有五個(gè)添加購物車POST /api/cart/add購物車列表GET /api/cart/list更新購物車數(shù)量PUT /api/cart/update刪除購物車項(xiàng)DELETE /api/cart/delete/{id}選擇購物車項(xiàng)PUT /api/cart/check每個(gè)接口都必須校驗(yàn)user_id是不是當(dāng)前登錄用戶的ID防止越權(quán)操作。之前我見過有的項(xiàng)目傳一個(gè)購物車ID刪除后端不加校驗(yàn)直接把對應(yīng)記錄刪了結(jié)果用戶A能刪用戶B的購物車數(shù)據(jù)。這就是典型的水平越權(quán)漏洞答辯時(shí)被老師追問會(huì)非常難看。4.4 下單與模擬支付下單流程是業(yè)務(wù)閉環(huán)的核心環(huán)節(jié)。用戶從購物車勾選商品點(diǎn)擊“去結(jié)算”進(jìn)入訂單確認(rèn)頁填寫收貨人、手機(jī)號、地址點(diǎn)擊“提交訂單”。后端下單接口內(nèi)部做了這么幾件事從請求中取出購物車ID列表選中的那些購物車項(xiàng)查出購物車數(shù)據(jù)和對應(yīng)商品逐條校驗(yàn)庫存計(jì)算總價(jià)生成唯一訂單號扣減庫存并累加商品銷量創(chuàng)建訂單主記錄和訂單明細(xì)清空已下單的購物車記錄返回訂單號和訂單金額每一步都在同一個(gè)事務(wù)方法里完成任何一步失敗全部回滾。這里有一個(gè)理論支撐點(diǎn)叫“分布式事務(wù)的本地事務(wù)簡化”單體應(yīng)用用Transactional就足夠了不需要引入消息隊(duì)列。模擬支付的實(shí)現(xiàn)很簡單創(chuàng)建訂單后訂單狀態(tài)為“待支付”前端跳轉(zhuǎn)到支付頁點(diǎn)擊“立即支付”調(diào)用POST /api/order/pay/{orderNo}。后端把這個(gè)接口模擬成支付成功把訂單狀態(tài)改成“已支付”。因?yàn)楫呍O(shè)不需要對接真實(shí)支付寶、微信支付所以這一步用一個(gè)模擬接口講清楚整個(gè)狀態(tài)流轉(zhuǎn)即可。訂單狀態(tài)的枚舉我建議設(shè)計(jì)成0-待支付1-已支付待發(fā)貨2-已發(fā)貨3-已完成4-已取消。后臺(tái)管理員可以對訂單進(jìn)行發(fā)貨操作把狀態(tài)從1改為2。5. 接口聯(lián)調(diào)與狀態(tài)管理5.1 統(tǒng)一返回結(jié)果封裝接口聯(lián)調(diào)最怕前后端各寫各的、對齊困難。我一開始就定了一套統(tǒng)一的返回格式{ code: 200, message: success, data: { } }code代表業(yè)務(wù)狀態(tài)碼200成功、400參數(shù)錯(cuò)誤、401未登錄、403無權(quán)限、500服務(wù)器異常。前端Axios響應(yīng)攔截器拿到響應(yīng)后先看code非200的話彈錯(cuò)誤提示并中斷操作。這樣一套規(guī)范寫下來不管接口有多少前后端永遠(yuǎn)不會(huì)因?yàn)榉祷馗袷絾栴}吵架。5.2 Vuex狀態(tài)管理前端我用Vuex管理全局狀態(tài)主要存儲(chǔ)用戶信息和購物車數(shù)量。用戶登錄成功后dispatch一個(gè)login的action把用戶信息寫進(jìn)store同時(shí)同步到localStorage。刷新頁面時(shí)在main.js里重新從localStorage讀取用戶信息調(diào)store.commit(setUser)避免刷新后頁面變成未登錄狀態(tài)。購物車數(shù)量是頂欄右上角的小紅點(diǎn)數(shù)字登錄后拉取購物車列表取所有item的quantity求和這個(gè)數(shù)字變化及時(shí)更新到Vuex里。Vuex的好處是組件間共享狀態(tài)不用一層層傳props缺點(diǎn)是刷新后狀態(tài)丟失所以配合localStorage做持久化這兩個(gè)結(jié)合起來用是前端狀態(tài)管理的標(biāo)準(zhǔn)姿勢。5.3 Axios封裝與接口統(tǒng)一管理我把所有后端接口按照模塊統(tǒng)一封裝到src/api目錄下例如// api/goods.js import request from /utils/request export function getGoodsList(params) { return request({ url: /api/goods/list, method: get, params }) }這樣頁面里調(diào)用時(shí)一行代碼搞定const res await getGoodsList({ pageNum: 1 })。接口統(tǒng)一收口的好處是后端接口路徑變了只需要改一個(gè)文件不用全局搜索到處改。5.4 后臺(tái)管理端實(shí)現(xiàn)后臺(tái)管理端和前臺(tái)的代碼在同一個(gè)Vue項(xiàng)目里通過路由前綴區(qū)分/admin開頭的都是管理頁面。權(quán)限上用路由守衛(wèi)判斷當(dāng)前用戶role是否為1非管理員直接踢回首頁。商品管理頁用el-table展示商品列表支持新增、編輯、刪除、上下架操作。新增商品時(shí)彈出一個(gè)el-dialog表單包含商品名稱、分類、價(jià)格、庫存、主圖、詳情等信息提交后調(diào)用后端接口寫入數(shù)據(jù)庫。訂單管理頁展示所有訂單支持按訂單號和狀態(tài)篩選。管理員可以點(diǎn)擊“發(fā)貨”按鈕把訂單狀態(tài)從待發(fā)貨變成已發(fā)貨。用戶管理頁就相對簡單查看用戶列表、啟用禁用賬號。數(shù)據(jù)統(tǒng)計(jì)頁用ECharts畫三個(gè)圖近七天銷售額折線圖、商品分類銷售占比餅圖、商品銷量排行條形圖。數(shù)據(jù)來源是后端統(tǒng)計(jì)接口返回的聚合數(shù)據(jù)。這一段代碼不復(fù)雜但視覺效果好答辯演示的時(shí)候老師看到圖表基本都會(huì)覺得項(xiàng)目很完整。6. 常見坑與排查心得6.1 跨域請求被攔截這個(gè)是前后端分離項(xiàng)目出現(xiàn)頻率最高的報(bào)錯(cuò)。現(xiàn)象是前端控制臺(tái)報(bào)No Access-Control-Allow-Origin header is present請求發(fā)出去了但一直拋錯(cuò)。實(shí)際排查要區(qū)分開發(fā)環(huán)境和部署環(huán)境。開發(fā)環(huán)境我用的是Vue CLI的proxy代理后端不用處理跨域部署環(huán)境如果前端Nginx和后端域名不同需要在Nginx配置反向代理或者后端配置CORS。為什么開發(fā)時(shí)proxy能解決因?yàn)榇硎峭吹臑g覽器看到的是前端服務(wù)轉(zhuǎn)發(fā)出去的請求不存在跨域。這一點(diǎn)在答辯時(shí)要能講清楚屬于架構(gòu)層面的理解題。6.2 數(shù)據(jù)庫時(shí)間字段差8小時(shí)MySQL連接串如果沒設(shè)置serverTimezone會(huì)在時(shí)區(qū)上出問題。我一開始后端返回的創(chuàng)建時(shí)間比實(shí)際時(shí)間少了8個(gè)小時(shí)排查時(shí)發(fā)現(xiàn)是數(shù)據(jù)庫連接沒指定時(shí)區(qū)。在application.yml里加一行就解決spring: datasource: url: jdbc:mysql://localhost:3306/mall?useUnicodetruecharacterEncodingutf-8serverTimezoneAsia/Shanghai這種問題寫論文時(shí)幾乎不會(huì)被提到但實(shí)際開發(fā)時(shí)非常典型真遇到了很磨人。6.3 npm install頻繁報(bào)錯(cuò)前端依賴安裝是另一大坑。npm install報(bào)錯(cuò)時(shí)我的處理路徑是清緩存npm cache clean --force刪掉node_modules和package-lock.json重新裝如果node-sass導(dǎo)致報(bào)錯(cuò)把sass相關(guān)的包換成dart-sass直接安裝node-sassnpm:dart-sass或者改用sass實(shí)在不行換鏡像源很多時(shí)候不是代碼問題而是網(wǎng)絡(luò)源或者Node版本和依賴不兼容。這些坑第一次遇到會(huì)覺得莫名其妙記錄到筆記里下次三分鐘就能解決。6.4 常見問題速查表現(xiàn)象可能原因解決辦法前端請求一直pending后端沒啟動(dòng)或端口不對先訪問后端接口確認(rèn)返回?cái)?shù)據(jù)登錄后刷新頁面狀態(tài)丟失用戶信息只存了Vuex沒存localStorage持久化用戶信息刷新時(shí)重新讀取加入購物車重復(fù)插入記錄數(shù)據(jù)表缺少聯(lián)合唯一索引加uk_user_goods唯一索引用插入時(shí)ON DUPLICATE KEY UPDATE下單不扣庫存事務(wù)沒生效或庫存扣減邏輯錯(cuò)誤檢查方法上有沒有Transactional檢查庫存校驗(yàn)是否在事務(wù)內(nèi)管理員頁面普通用戶也能訪問前端路由守衛(wèi)沒檢查角色在beforeEach里增加role 1判斷圖片不顯示圖片路徑是絕對路徑后端沒映射在Spring Boot中配置靜態(tài)資源映射或改用相對路徑分頁數(shù)據(jù)不對前端傳的參數(shù)名和后端接收的參數(shù)名不一致統(tǒng)一用pageNum/pageSize記得大小寫一致7. 部署上線與后續(xù)擴(kuò)展7.1 打包部署前端的部署方式很簡單執(zhí)行npm run build后dist目錄下就是打包好的靜態(tài)文件。把它扔到Nginx的html目錄配置一個(gè)server塊就能通過80端口訪問。這里有個(gè)關(guān)鍵點(diǎn)直接雙擊index.html使用file協(xié)議打開會(huì)一片空白因?yàn)槁酚捎玫氖荋istory模式file協(xié)議不支持。要么改用hash模式要么配置Nginx的try_files。我在交付項(xiàng)目時(shí)會(huì)附帶一份啟動(dòng)文檔詳細(xì)到每一步怎么操作、訪問什么地址、初始賬號是什么拿到的同學(xué)照著文檔走一遍就能跑起來。這種項(xiàng)目如果說還有什么無形的價(jià)值就是這套標(biāo)準(zhǔn)化交付的習(xí)慣。7.2 功能的擴(kuò)展方向項(xiàng)目運(yùn)行起來之后如果還有余力可以往幾個(gè)方向擴(kuò)展接入Redis做驗(yàn)證碼存儲(chǔ)和Session共享加ElasticSearch做商品搜索用RabbitMQ做訂單超時(shí)取消。這些技術(shù)點(diǎn)每一個(gè)都能單獨(dú)寫進(jìn)論文的“系統(tǒng)優(yōu)化”章節(jié)也都能在答辯時(shí)展示你對系統(tǒng)的深入理解。但我的建議是先把現(xiàn)有閉環(huán)打磨好別急著加。有一個(gè)完整可運(yùn)行的項(xiàng)目比一個(gè)半成品但堆了十種技術(shù)的項(xiàng)目更有說服力。7.3 文檔與答辯材料的整理很多同學(xué)源代碼跑通了就感覺自己完事了但實(shí)際上交付一個(gè)畢設(shè)/課設(shè)項(xiàng)目文檔是占大頭價(jià)值的。我常見做法是整理四份材料需求分析文檔含用例圖、數(shù)據(jù)庫設(shè)計(jì)文檔含ER圖和表結(jié)構(gòu)說明、接口文檔用Swagger或者Word表格、操作手冊含截圖和啟動(dòng)步驟。再加上一個(gè)PPT流程就是“研究背景 - 技術(shù)棧選型 - 系統(tǒng)架構(gòu)圖 - 核心功能展示 - 數(shù)據(jù)庫設(shè)計(jì) - 總結(jié)”。答辯的時(shí)候照著這個(gè)順序講重點(diǎn)放在“前后端分離架構(gòu) 完整業(yè)務(wù)閉環(huán) 安全校驗(yàn)”這幾個(gè)點(diǎn)上比背代碼效果好得多。我個(gè)人在實(shí)際操作中的體會(huì)是這類項(xiàng)目最怕的就是“什么都想要但什么都不完整”。能跑通全流程、代碼結(jié)構(gòu)清晰、每一步能講出設(shè)計(jì)理由就是一套成功的交付。把這個(gè)項(xiàng)目完整做下來收獲的不只是幾千行代碼而是一套“從業(yè)務(wù)到架構(gòu)再到細(xì)節(jié)”的完整思考方式。后面不管是找工作面試還是繼續(xù)深造這套思路都能直接復(fù)用。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
超碰97男人| 欧亚在线视频| 超碰日韩人妻| 综合亚洲网| 亚洲精品国产AV天美传媒| 欧美人妻久久精品二区三区| 国产成人午夜视频网址| 84YTCOM性无码| 精品国产乱码久久久A| 九区国产| 东京热熟女亚洲视频网站| 嗯啊免费视频| 久久精品老司| 极品一区二区三区免费| 亚洲中文电影| 精品国产91久久久久久一区黄无| 亚洲人妻一区二区三区| 天美国产三级传媒| 久久国产视频性吧| 亚洲有薄码区日本系列中文字幕| 黄页大片在线观看| 久久天堂婷婷网| 精品国产嫩穴视频| 黄色网址久久精品欧美喷水| 亚洲一区二区麻豆影院| 成人午夜无码视频| 亚洲天堂电影精品一区| 亚洲丝袜二区| 任你草| 无码免费精品高清| 欧美在线视频99| 日本午夜精品理论片A级APP发布| 国产第25页在线观看| AV和黑人在线播放| 中文字幕一区二区日韩网| 色哟哟AⅤ| 亚洲A曰本VA欧美VA视频| 91性感在线| 日韩综合第八区国产精品| 啊啊啊不要嗯嗯在线观看| 五月开心久久AV官网| 91总综合网| 中文字幕精品乱码| 国产日韩怡红院| 久夜视频| 国产精品嫩草影院午夜两性| 欧美性爱www免费版| 思思视频免费看网站| 日韩免费一级性爱视频| www.av在线观看| 狠狠干,狠狠操| 五月婷婷性爱| 福利风月五月天影院| 亚州乱码中文字幕综合久久久| 久久精品一区| 久久久久久久久国产| 亚洲综合另类色图| 日韩少妇无码| 在线观看无码三级少妇| 日本理论在线| 欧美猛交黑寡妇中文字幕| 1000午夜黄色| 性爱乱伦视频免费| www.91色综合| 日本欧美色| 正宗无毛一线天嫩逼| 欧美日韩1234| 男人的天堂啪啪| 久久久中文版| 熟妇乱伦一区二区| 美国日韩黄色片| 动漫片子网站3黄| 中文字幕超碰CAO| 精品久操| 国产一级特黄大片处女| 丁香五月激情综合| 天美欧美国产| 国产色综合亚洲色综合吹潮| 黑丝少妇麻豆| 久久久一二三四区| 国产乱色国产精品免费视| 日日操天天操| 91碰碰| 久久精品国产亚洲5555| 911粉嫩人妻| 亚洲。日韩。欧美| 色九九久九九| 淫荡熟女乱伦网| 亚洲色图久久成人| 大香蕉草草| av无码av无码专区| 日日橹狠狠爱欧美超碰| 91精片| 日本一级黄色电影| 亚洲97网站| 亚洲乱色熟女一区| 天美精品一区二区三区四区在线观看| 蜜臀一区二区三区在线 | 色综合色欲色综合色综合色综合| 欧洲中文字幕| 97爱爱| 激情五月综合网| 性九九九九九九| 1769成人国产精品视频| 情色AV电影| 夜夜高潮夜夜爽夜夜爱爱一区| 啪啪资源网| 久久综合中文国产| 色在线综合| 亚洲情色电影网| 九九热re99re6在线精品| 中文字幕奈奈美被公侵犯| 北条麻妃99精品青青久久| 欧美日韩久久精品爱爱| 人妻AV在线| 校园春色 亚洲| 高清无码 国产精品| av一区二区三区四区五区久草臀| 在线人人人人人人精品超| 亚洲熟久久| 人人贴人人摸| 东北操逼| 日韩三级一区| 欧美日韩在线视频网站| 亚州色站 日韩电影| 久久草草亚洲蜜桃臀| 九九久久久九九| 无码人妻一区二区三区免费九色| 97中文天堂| 亚洲色图图片| 第45页一区二区| 无码动漫av中文字幕| 中文字幕一区 二 区 三 四 五 区日 日 骚 | 18禁的网站在线| 激情情色五月天| 巨爆乳肉感一区二区三区竹菊影视| 久久精品六区| 东北女人av| 91在线免费精品视频| 宅男91视频在线播放| 97超碰磁| 嗯嗯嗯啊啊在线观看| 色婷亚洲五月在线观看| 大象AV在线| 性爱欧美五月| 五月婷婷激情网| 91丝袜| 超碰色中文| 日韩不卡在线一区二区| 国产又粗又长又大的视频| 嗯嗯嗯啊啊啊在线免费观看| 一类av片在线看| 日韩高清一二三| 久久久无码国精品无码三区三区| 亚洲影院无码在线| 人人澡人人澡人人| 夜夜操91744565| 午夜偷拍久久熟女| 欧美激情综合网| 青青草成人视频在线观看二区 | 97久久超碰国产精品| 97精彩视频网站| 国产精品爱欲| 色五月av| 九九九九九九免费视频| 91黑丝美女| aaa一级黄片| 欧美成人性爱视频在线播放| 国产嫩草精品A88AV| 91九九九小逼| 裸体1区| 亚洲 综合 欧美| 国产操偷| 97欧美性爱| 中文字幕人妻资源在线| 色图四区| 人妻另类| 骚女天天综合网| 欧美爱国产综合、| 97国产伦理| 夜夜高潮夜夜爽| 人妻99p| 精品久久无码午夜福利| 久草在线| 91爱| 伊人91| 999色欧美中文字幕| 成人精品视频一区二区| 麻豆蜜桃视频在线观看| 国产精品在线一区二区| 亚洲。日韩。欧美| 95人妻爽爽人人做人人澡| 日韩国产乱子伦App| 大香蕉乱级| 诱惑网综合| 久久αⅴ| 78超碰| 大香蕉视频啪啪啪啪| 激情情色五月天| 97精品97久久| 99草精| 在线情色电影 91大| 爱爱动态试试看6 0秒| 97色插| 嗯啊啊啊轻点视频 | 后入 亚洲 美女 射| 少妇无码太爽| 第二页中文字幕| 日本啊啊啊啊啊视频| 久久一区无码| 九九夜精品九九在线| 人人摸人人干| 精吧天堂| 中国亚洲呦女专区| 啊啊啊啊一区| 后入内射蜜桃臀| 91丝袜激情在线| 97 国产一区| 夜精品久无码| 另类图片天天影视| 国产后入| 国产精品久久久久久 百度| 国内毛片国产专区二| 日本三级R| 天天看综合网| 很很很很操| 热久久无毒不卡| 加勒比aⅴ| 91精品国产一区三一| av天堂加勒比| 91欧美成人色站| 成人网址在线观看| 日本精品一区三区| 久久一二三四不卡 | 中文字幕人乱码中文字的预防方法 | 男人的天堂kva| 97超碰欧美中文字幕| yiqicaoav| 大香焦A片| 国产人妻天天干精品| 综合色图区| 久久久久亚洲精品| 一本色道久久综合精品婷婷| 无码人妻一区二区三区色欲aⅴ| 欧美日韩电影成人在线| 五月婷婷激情综合| 97免费视频网| 国产精品色色| 国产男女无套97| 很狠操| 性欧美91| 99久久久无码国产精品性男| 国产AV天美| 97在线播放| 影视综合无码少妇| 国产传媒日本欧美专区| 蜜汁欧美| 狠狠色狠狠色狠狠五月| 在线观看一卡二卡| 少妇蹲下买菜露大唇0| 天天网综合| 粉嫩av久久一区二区三区| 99色在线观看| 91网站18+| 欧美成人性爱视频在线播放| 高清不卡国产| 91天美免费| 亚洲精品国产熟女久久久久久| 色99视频| 色亚洲欧美| 日韩激情啪啪啪| 天天流夜夜操| 四方色播| 狠狠色综合网| 九九亚洲色在线观看| 一级性爱视频免费观看| 亚洲欧美大| 久操免费电影| 亚洲av强奸乱伦| 91美女视频电影| 国产又黄又粗的视频| 亚洲 综合 欧美| 男人的天堂视频精品乱在线| 翔田千里av一区二区三区| 国产精品密臀网在线观看| 免费看黄片现成| 又大又长又爽| 日本αv| 看看小穴| 国产91福利小视频在线观看| 97天天弄| 久久亚洲AV无码专区国产精品| 国产男女无套97| 亚洲人成网站7777| 国产精品。| a片在线播放| 狠狠图片青青草| 久久精品国产99精品亚洲蜜...| 精品99999久久久久久| 久久久91| 日韩专区数据列表-第3230页-精品国产一区二区三区香蕉 久久99熟女人妻中文字 | 蜜臀99久| 91久久精品国产| 欧美成人性活片| 久久发布国产伦子伦精品| 91精品老女人| 磁力99AV| 每日更新AV| 超碰久草| 少妇 综合| 欧美岛国精品在线观看| 亚洲色资源| 日韩免费看黄片| 亚洲少妇视频| 97色欧州| 久久99久久99久久99人受| 大粗鳼巴久久久久| 五月天久久婷婷亚洲| 思思热国产在线视频| 亚洲丰满很很操| 操人无码| 乱伦一区二区三区‘| 精品二区三四区五电影| 天天综合日韩网| 欧美日韩午夜精品一区二区三区| 人妻少妇久久| 大香蕉十区| 美国一区二区三区视频| 青青草大香蕉视频| 超碰天天操你比| 性爱av网站| 91美女中出| 精品人妻免费观看| 亚洲天天自拍| 91少妇香蕉久久精品| 96久久科窝| 欧美人与性动交a美精品| 97色综合中文网| 91中文精品日韩欧美在线| 亚洲一区二区三区AV无码| 亚洲天堂2020| 久久超碰av在线| 丝袜熟女2P| 欧美性爱一级操| 日韩性爱啪啪视频| 日曰骚久久精品| 国产午夜视频| 九九热九九热| 在线播放成人网站| 国产网站在线播放| 欧美少妇性爱网站| 男女啪啪啪18禁网站| 国产精品69久久久久久久| 韩日男人的天堂| 婷婷亚洲五月***久久| 九九精品无码专区免费| 国产一区在线播放| 加勒比综合在线| 裸体1区| 久久久久久久久久久人妻| 中字乱伦AV| 久久精品久久九九精品| 成人av在线播放| 欧美色狠| 偷拍综合网| www欧美91| 久久影视二区三区行押| 91nbbbbbb| 欧美中文狠| 日韩中字av一区| 欧美夜夜狠| 婷婷色色五月| 亚洲激情网一二三四区| 日本免费中文一区二区三区四区| 国产成人亚洲精品自产在线| 99欧美| 色播五月丁香| 亚洲 日韩 欧美 国产综合体| av天堂手机版追回 | 亚州春色| 日本中文字幕一区| 超碰欧美在线欧美| 男人天堂网手机版婷婷| 亚洲欧美97√| 天天躁日日躁狠狠躁| 国产97色在线| 999综合网| a片久久久久久久久久久久| 啊啊啊好想要| 国产精品黑人一区二区三区| 亚洲 欧美 偷拍 唯美| 中文字幕乱码人妻二区三区| 欧美αv.com| 人人操人人uiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii | 欧美性色欧美| 白丝一区| 十八岁啪啪视频免费看| 亚洲国产日韩欧美熟妇在线| 可以免费观看的AV| 手机不卡视频不卡在线一二三区| 欧洲亚洲人妻无码中字久久三区四区| 神马久久久久久久久久久久| 精品人妻无码一区二区三区不卡-精品人妻无码一区二区...|精品少妇一区二区三 | 久久综合久色欧美综合狠狠 | 诱惑网综合| 秋霞色色影院| 国产亚洲女v在线观看| 色综合av男人天堂| 一区二区日韩欧美久久| 久久伊人青青草| 中文字幕精品专区搜索结果91| 欲香欲色综合天天伊人| 日本熟女不卡视频| 成年女人18级毛片毛片免费观看| 色性荡荡荡荡视频| 男人的天堂日韩| 欧美性色网| 密乳AV免费观看| 色综合婷婷| 四虎AV无码| 91亚洲狠狠色| 国产精品不卡一区二区电影| 久久婷婷亚洲| 97精品综合久久网| 久久久97| 国内自拍 日韩激情 99| 校园春色欧美色图| 亚洲图片欧美色| 可以在线观看的黄色网址| 亚洲激情久久| 久久久久幕乱码| 亚洲无码电影久久久| 5278欧美一区二区三区| 亚洲 欧美 另类 综合 偷拍| 91少妇高潮| 日韩在线性爱免费视频| 美女超碰978| 大屁股熟女一区二区三区| 欧美色网| 亚洲欧洲美腿丝袜| 91亚洲欧洲| 日本精品不卡一二三区| 色噜噜人妻丝袜AV资源| 97操| 蜜臀久久一区二区| 神马麻豆福利院| 国产亚洲日本精品在线| 91美女在线视频| 综合久久97| 五月天婷婷色色| 在线情色电影 91大| www熟女乱伦com| 亚洲天堂综合AV| 欧美日韩一二三| 日韩av影片在线观看| 啊啊啊在线观看免费视频| 日本精品五区| 亚洲不卡AV在线| 蜜臀久久99精品久久久久久酒店 | 久久综合女优| av爱爱爱| 亚洲淫色网中文| 国产家庭乱伦表演| 蜜桃久久久久久久| 色吧5亚洲| 日韩pv中文| 狠狠91| 国产不卡精品91| 色悠久| 北京专精特新企业招聘信息| 亚洲网站一区二区在线| 亚洲少妇色图自慰直播| 亚洲欧美综合区自拍另类| 日夜久久久九九九久| 婷婷干黄色| 亚州色站 日韩电影| 国产精品麻豆免费视频| 国产精品久久久九九九| 啪一啪免费视频| 欧美色图片欧美色图| 青娱乐日韩无码| 抽插一区二区视频| 国产精品麻豆成人AV艾秋| 97精| 大肉棒导航| 夜嗨影院| 91老熟妇| 91精品国久久久久久无码| 欧美性爱1080p| 欧美日日人人天天| 亚洲色堂免费视频| 国产日韩欧美中文在线播放| 久久亚洲日韩国产欧| 天天日天天色| 成人自拍三级在线观看| 欧美后入式| 日韩人妻少妇中文字幕| 国产传媒操逼视频| 中文字幕乱妇免费视频| 91欧美偷拍| 美国aaaaa一级黄片| 亚洲激情在线| 男人网站婷婷| 视频二区美腿丝袜制服人妻欧美 | 欧美精品人妻视频| 日韩人妻播放| 思思久热在线精品66| 欧美视频激情久久久久久| 久久性爱城| 影音先锋每日最新资源在线观看| 欧亚韩国999| 婷婷国产精品九区| 亚洲免费人妻在| 玖玖爱在线视频免费观看| 久草老司机| 国产精品久久久视频| 亚洲一区二区中文字幕| 蜜乳中文字幕a在线| 91久热| 中文字幕88av在线| 天天插天天插| 特级丰满少妇一级AAAA爱毛片| 色妺妺AⅤ| 亚洲中亚日激情视频| 久热久一区二区三区| 亚洲AV成人在线| 国产精品无码久久久久2028| 人人么人人操| 少妇熟女一区二区三区| 男人的天堂三级| 亚洲男人的天堂在线看| 2019天天操天天爽天天拍| 欧美性爱五月天| 国产懂色精品国产av| 自拍偷拍草一草| 欧美精品宗合| 校园春色五月天| 亚洲自拍小说| yazhouzaixian| 亚洲 另类 丝袜 自拍 动漫| 99啪啪| 欧美另类色| 国产刺激视频| 色色五月天婷婷| 人人做人人妻人人夜视频| 中国少妇XXXX做受| 欧美性爱第一区| 国产在线观看91精品一区| 欧美欧美啪啪视频| 97在线免费视频| 人人妻人人澡人人爽久久av| 三四中文字幕| 99热销国产这里有精品| 日韩本不卡视频在线观看 | 91免费看一区二区三区 | 亚洲欧洲美腿丝袜| 欧美熟女激情| 久草色悠悠在线视频| 老熟女91av| 欧美 亚洲 大香| 欧美色图中文字幕| 亚洲 另类 丝袜 自拍 动漫| 超碰98综合网| 中文字幕精品亚洲熟女| 97亚洲自在精品在线观看| 久久九九久精品国产尤物|国产精品爽黄69天堂A片潘金莲,国产亚洲精品第一综合 | 麻豆AV一区二区| 伊人97色天使| 无码视频一区二区| 果冻传媒一区二区三区| 国产熟女自拍| 91美女小视频| 国产精品福利资源在线尤物| 一区不卡在线观看av| 青娱乐亚洲自拍| 青草青草久热| 欧美亚洲日韩人妻在线观看| 夜夜操老骚逼视频网站| 欧美中字二区| 亚洲欧美激情小说| 色综合一区二区三区| 国产Av超碰| 九九探花视频在线观看| 国产精品 久久久精品一牛| 1769一区| 黄色视频特级毛片| 精品久久青青草| 男人天堂综合| 久久久精品一区二区| 青草地一本线一区二区三区| 大香蕉乱级| 免费精品福利在线观看| 日本一区二区电影网站| 热的中文 热的有码 热的国产| 蜜桃午夜视频一区二区 | 无码视频一区二区| 国内毛片四区| 天天夜躁日日躁狠狠2002| 亚洲少妇综合在线播放| 青青草视频久久| 嗯嗯啊好大| 久久97精品久久久久久久不卡| 一区二区三区免费视频入口| 思思热免费视频观看| 男人的天堂在线2| 久久噜噜噜精品国产亚洲综合| 欧洲亚洲人妻无码高清久久三区四区| 日本欧美不卡| 国产一区二区三区导航| 欧美精品丝袜久久久中文字幕| 国产乱子伦一区二区三区免看| 欧美资源| 国产激情片在线观看| 97青娱乐超碰久久| 亚洲超碰97| 国产AV久久久蜜爱影集| 亚洲人精品久久久喷水| 99久久99九九99九九九| 久久一级无码精品毛片6| 亚洲AV资源| 国产精品诱惑| 操操碰| 久艹99| 免费超碰97在线观看| 欧美另类色| 久久久久久久9999| 一区二区三区机械有限公司| 97超碰超欧美。| 精品无码久久久久久国产浪潮| 老鸭窝亚洲毛片| 少妇天堂| 综合婷婷| 亚洲Av诱惑| 婷婷色影院| 91亚洲狠狠色| 俺去俺来也在线www| 国产免费久久精品99re韩国| 豆花视频操逼网址| 少妇一区二区三区在线观看| 97超碰人人模人人拍人人| 久久免费精彩视频| 国产精品乱码久久久、久久| 嫩草影院性色| 中国大陆国产高清AⅤ毛片| 久久一区无码| 久久精品国产欧美日韩亚洲欧美日韩中文久久国产一区 | 欧美v亚洲v日韩v最新在线二区| 超碰久久草| 一级黄色视频网| 97AV在线免费观看| 亚一综合久久久久久久久久| 国产性爱欧美性爱在线| 综合欧美激情网| 天欧美在线| 亚洲国产午夜真人一级片中文字幕精品黄网站 | 亚洲色欲一区二区三区| 97免费在线视频| 看黑人AV不卡| 亚洲小电影免费涩涩成人在线高清| 91欧美成人色站| 色欲av一区二区三区蜜芽| 热久久国产精品视频大陆精品| 另类小说综合网| 91男同| 超碰精品在线| 亚洲精品少妇| 亚洲情色图片区| 97精品熟女少妇一区| 亚洲偷拍欧美激情| 亚州精品丝袜-不卡成人免费| 男人天堂.AB| 日韩无码服务区| 在线观看中文字幕| 欧美亚洲AN| 久思思热视频在线观看| 老司机深夜18禁污污网站| 欧日a| 久久一级无码精品毛片6| 日本三级日本三级99| 91在线美女| 少妇天堂| 国产性感骚丝袜在线| 日韩卡一卡二卡三在线| 91操熟女视频| 思思热免费视频观看| 色哟哟-国产专区| 97超碰伊人| 亚洲熟女av中文字幕| 国产熟女少妇一区| 神马久久久久眼| 麻豆精品三区视频| 日日摸日日碰夜夜爽视频| 久 久无码人妻AV| 97九色人妻| 97国产|免费| 久久久久七视频| 屁股久久久久久| julia高潮后不停追击中出| 久久久久久久久久久久久女过产乱-少妇高潮一区二区三区喷水-成人AV | 极品销魂美女一区二区| 欧美熟妇操操视频| a网站免费观看| 啪啪视频亚洲第一| 999999精品| 呦女网站| 目产99999久久999| 91精品电影18| 九九色影院| 欧美另类综合久久| 成人五级久久| 国产精品国产精品国产| 国产精品午夜精品| 老司机久久| 久久综合精品一区二区三区| 久久思思热| 欧美v亚洲v日韩v最新在线二区| 久久精品人人做人人看| 九九九九精品九九九九| 国产麻豆91欧美一区二区久久婷婷国产精品| 97资源欧美| 精品熟女一区=区三区| 99热在线播放| 大香蕉久| 婷婷综合网站| av一区二区三区 中文| 人人操人人uiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii | 亚洲中文字幕97久久精品少妇| 国产三级多多影院2022国产AA一级毛片无码 | 久久妇| 97欧美色资源| 禁十八久久| 区一二区日韩亚洲乱码av电影| 日韩pv中文| 欧美性爱97超碰| www.91色综合| 日韩偷拍色图| 五月天春色激情网| 在线天堂999| 国产怡红院| av操操不卡| 97大色网| 夜夜福利| 色偷偷人人玩人人舔人人操人人摸人人爽| 天天综合网AV91| 天综合网欧美| 99re在线视频这里只有精品| 不卡六六在线91| 综合网亚洲在线| 青青草一区二区高清无码视频 | 五月天婷婷影院| 91视频国品一二三区| 麻豆精品久久久久久久| 97操97色| 夜草欧美| 天堂av最新电影网| 日韩在线电影| 熟女乱3伦999| 一区二区三区黄色片a| 欧美日韩国产高清在线一二三区| 天天做日日爱夜夜爽| 色婷五月| 伊人影院在线理论播放 | 操逼无码操逼| 国产操逼逼网| 丁香六月婷| 亚洲综合有玛| 伊人在线大香蕉视频久久| 国产又粗又长的视频| 麻豆天美传媒毛片| 日韩中文字幕人妻视频| 999国产精品999| 欧美三级一级| 91精品少妇搡搡搡| 97超碰碰| 女人喷水视频在线观看| 女优视频第10页| 老女人老91妇女老热女| 蜜臀久久99精品久久久久电影| 久久久九九九| 亚洲一区二区三区欧美日韩| 亚洲人妻一区二区三区| 97干天天| 亚洲黄色| 岛国在线一区二区三区| 亚洲色天堂日韩中| AV色五月天| 99热在线观看| 国产亚洲禁久一区二区 | a片自拍直播视频| 久久精品亚洲成a人天堂| 性色avv| 插B在线观看| 大香蕉免费3| 色九区| 男人的天堂久久狠| 国产操逼网站亚洲一级黄色| 国产视频一区二区免费| 国产综合久久久鬼色| 97视频播放| 十八禁的黄污污免费网站| 亚洲一区中文字幕久久,果冻传媒一区二区天美传媒 | 四虎在线播放| 黑人精品XXX一区一二区| 久操热| 午夜精品人妻二区三区| 久久在线观看免费视频| 91丝袜美女国产| 97爱啪| 最好看的中文字幕在线2018| 久久这里精品国产99丫e6| 99re这里只有精品2| 国产免费操逼| 99re8免费高清在线| 激情小说亚洲色图| www.超碰| 一卡二卡三卡| 免费综合亚洲中文| 风骚少妇视频中文字幕| 免费?级毛片无码?∨蜜芽试看| 亚码激情| 超碰91在线| 日本三级韩国三级99| 99热在线只有精品| 亚洲欧美日韩夜夜| 插B在线观看| 日韩欧美字幕亚洲一区二区| 都市激情人妻一区二区青青操视频| 日韩兔费看黄片| 97在线免费看| av网站在线看| 亚洲精品一二三四区| 亚洲学生妹高清av| 后入 亚洲 美女 射| 天天综合97| 偷拍欧美激情| 91网九色蝌蚪操熟女| 性色高清在线| 亚洲男人久久综合天堂| 成人五月天色网| 岛国黄| Julia Annxxxxx| 亚洲一本色道中文无码aV天美| 在线免费试看60秒| 亚洲成人性爱在线观看| 性欧美| 免费夜夜爱黄色视频毛片| 欧美九九九九九| 好淫网一二三视区| 成人无遮挡毛片免费看| 日韩无码AB| 插欧洲美女欧美精品| 大逼色网站| 一区二区久久天天干狠狠| 亚洲性爱成人| 啊啊啊啊好疼视频| 亚洲AV免费在线| 亚洲欧美首页| 日韩中文字幕av在线播放| 亚洲天堂人妻熟妇视频| 偷窥自拍亚洲| 大香蕉伊人网WWWn0n| 先锋激情∨在线视频播放| 中文字幕一区二区三四五区日日骚| 日韩激情中文字幕有码| 国产精品乱码久久久| 麻豆AV一区二区| 最新中文字幕在线亚洲| 60秒不遮不挡| 欧美亚洲美少妇一区二区| 簧片免费看视频| 人妻精品视频一区二区三区| 加勒比五月天| 午夜人妻精品综合在线| 精品国产无码中文| 伊人性在线视频| 97硬碰| 国产在线精品偷| 国产午夜精品理论片a大结局| 91性感网站| 激情五月天色播| 日本性爰一道本| 欧美在线天堂| 超碰伊人在线| 免费看污网站| 性爱1区| 人人人摸人人| 亚洲人妻精品一区二区| 天操老女人| 日韩免费人妻色情网站| 殴美在线AⅤ| 亚洲熟妇一,二,三期| 欧洲自拍第一页| 久草资源欧美在线视频| 色官网在线| 国产性爱在线视频一区二区| 久久久四区| 后入式999| 国产中文福利| 91亚洲不卡一区| 99热这里是精品| 亚洲无码?第一页| 伊人久久综合影院精品久久久| 麻豆尤物视频网| 智利AV在线网| 热热热热日日漂亮永久永久国产日| 亚洲少妇色| 日本在线不卡一二区| 欧美日韩国产黄色片| yiqicaoav| 色综合91好| 色欲天香天天综合网-成年人三级片网站-欧美乱妇狂野-日韩国产专区-久久久久久 | 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区老师黑人潮喷一 | 日本一级一级一级一级| 91动漫操逼视频| 天堂俺去俺来也www久久婷婷| 久久AV无码AV| …亚洲黄色厕厕女女在线播…| 天天在线91| 久久6热精品99视频| 国产精品密臀网在线观看| 伊人大香蕉在线| 99中出在线| 97在线免费看| 亚洲中文制服诱惑| 日韩国语字幕| 亚洲 欧美 91| 日韩偷拍色图| 欧美日韩国产中文精品字幕自在自线,| 女人爽到高潮潮喷18禁网站| 国内毛片国产专区二| av在线不卡一区二区三区| 无码区蜜乳| 天天草夜夜草高潮片| 欧洲亚洲国产综合在线| 精品国产无码中文| 久久久久人妻二区精品叶可怜| 日韩字幕一区| 久久精品国产AV一区二区三区| 牛牛AV人人夜夜澡人人爽| 国产91影院| а√天堂资源官网在线资源| 国产精品无码成人精品| 亚洲无码视频免费在线观看网址! J?P?NESEHD熟女熟妇伦 | 日韩欧美操逼xxx| 秋霞网—男女啪啪亚洲免费体验区| 男女做爰猛烈动高潮A片免费应用 少妇厨房愉情理伦片bd在线观看 不卡中文字幕aⅴ在线 | 婷婷伊人綜合中文字幕| 五月丁香色综合| 野狼激情网| 91亚洲欧美色图| 91nbbbbbb| 亚洲情色 无码专区| 亚洲高清欧美总合| 激情色图| 日韩黄片视频试看| 探花一区在线| 深夜啪啪啪视频免费| 自拍丝袜美腿人妻| 91黑丝操| se..亚洲欧美| 嫩草在线视频| 日韩一级欧美一级在线观看| 91国产精品在线看| 欧亚不卡| 天天综合站| 免费观看一区| 91午夜无码| 中文字幕成人| 久久久久久91香蕉国产| 大白逼三四级| 超碰78| 国产精品婬乱一级毛片彝族| a在线观看| 日韩少妇丰满亚洲| 国产深喉| 91性高朝久久久久久久久| 日本色色色视频| 欧美|91色综合| 9长久久精品| 久久久久久九九九九| 成人麻豆av电影网站| 五月婷婷综合激情| 欧美成人色| 人人妻人人澡人人爽久久av| 韩三级a视频在线观看| 99操视频| 91总综合网| 国产馆| 黄片免费久久久久久久| 青青11操操操操操操操操| 熟妇激情| 欧美性爱第一页久久| 色色色99| 亚洲网污污污污| 中文字幕一区二区视频在线观看| 丰满高潮18xxxx| 很黄很污的免费网站| 美女91网址| 成人a大片在线观看| 国产亚洲 中文欧美久久| 日韩黄色小说| 内射老妇BBWX0C0CK| 亚洲精品男人的天堂| 久久宗合亚洲| 精品人妻一区二区三区四区石在线 | 99啪| 怡红院成人视频| 日逼国产| 欧美日动态视频| 日韩免费在线观看不卡| 尹人大香蕉视频在线| 91青青在线视频| 手机在线播放国产福利| 亚洲狼狼干综合1| 好色综合| 射 色综合| 中文字幕一区二区无码成人| 操我无码| 久久原创中文| AV不卡在线| 欧美大片天天看| 1级黄色夫妻对换性交免费看| 蜜桃色色网站视频三区| 日本三级精品| 婷婷五月天成人网| 风间由美日韩欧美久久| 日日碰狠狠添天天爽超| 国产精品乱码久久久、久久| 亚洲精品人妻在线| 99久在线精品99re8a| 日本黄色大片一级视频免费麻豆| 欧美色图中文字幕| 97无码视频在线播放| 九九久久一区二区三区| 大JI巴好深好爽又大又粗视频| 亚洲天堂中文字幕无码男同| 国产欧美另类久久久精品课程| 日韩成人电影AV| 国产91美女视频| 五月丁香网站| 清纯唯美亚洲综合| 97爱免费插| 久久精品国产欧美日韩亚洲欧美日韩中文久久国产一区 | 久久久久九九九九| 精品无码一区二区| 黑人精品XXX一区一二区| 日韩懂色网| 不卡一区二区日本视频| 亚洲怡春院| 色爱国产| 欧美亚洲综合高清在线| ,国产乱人伦精品一区二区三区| 亚洲 欧美 精品专区 极品| 国产13区| 国产精品黄色三级av| 日夜尻逼网| 久久精品小视频| 98人妻精品一区二区色欲| 日本不卡二三区| 国产精品久久成人免费| 亚91网| 18一区二区三区| 日韩欧美成人午夜福利| 免费国产| 日本三级久| 91午夜无码| 午夜亚洲| 精品国产一区二区三区久久久蜜臀| 日韩中文字幕国产| 欧美日韩系列| 久久久工口| 欧美日韩一区二区三区四区蜜桃| 欧美丝袜亚洲| 国产大片精久久久久久| 少妇干B| 91美女视频在线观看| 欧美中文狠| 亚洲精品色| 在线岛| 伊香蕉综合久久久久久久噜噜噜| 日韩二级| 人妻-91porn| 亚洲影院无码在线| AV天黑人| 久久伊人网视频一区二区三区| 国产综合网站在线播放 | 18精品一二区| 二级久久网| 天天舔天天 | 超碰人人乐97| 日韩欧美亚洲一区二区三区影院| 少妇久久久久久久久| 成人久久久精品| 91丝袜美女| 五月丁香婷婷综合网| 亚洲日本激情| 午夜超碰| 999久久久久久久久| 日日A∨| 精品91摸| www.丁香五月| 操操逼操操逼操操逼逼| 黄骗免费网站| 在线洲亚线| 伊人久久亚洲中文字幕不卡| 中文字幕啊啊啊在线观看视频| 日韩精品免费高清视频在线| 久久六六| 中文字幕成人乱码熟女精品国50 | 亚洲激情综合另类男同| 性猛交| 天天综合网在线91| 亚洲欧美综合网站| 330Dv国产女人终合视频极品人与兽| AV九九| 国模吧 一区二区三区| 国产精品成人无码a v毛片| 少妇综合网| 大香蕉久久| 91性网| 综合网亚洲在线| 欧洲自拍第一页| 91女优在线观看| 日韩欧美资源| 性色av一区二区| 99国产精品久久久久久久成人热 | 日韩字幕一区| 精品三级在线专区| 少妇久久久久久| 国内伊人久久久久久网站视频| 蜜区区视频79| 欧美色狠| 屁股久久久久久| 91色宗合| 超碰美国| 在线中文字幕视频| 国产路线专区| 精品少妇99| 精品97久久| 成人国产二区三区在线,男女精品。| 人妻大香蕉| 亚洲中文字幕久久无码精品| 精品美女人人干| 亚洲成人在线资源| K8久久久久| 天天操妹子| 蜜桃久久一区二区| 国产深夜福利| 一区二区三区免费视频入口| 韩国一级做a久久久久| 一级一性爱免费视频| 精品无码一区二区三区色欲| 国产精品懂色tv影视免费观看| 91在线免费精品视频| 很很操在线| 日本 色 导航| 中文自拍欧美影视| 色丁香五月婷婷| 美女啊啊啊啊啊啊啊| 超碰99热中文字幕|