日韩精品一区二区三区在线视频放-无码中文字幕V?一区二区-成年片免费观看视频-国内少妇人妻丰满av-国产精品中文字幕免费观看-亚洲成人久久一区二区三区-国内少妇偷人精品视频无缓冲-一区二区国产精品日本一区二区三区在线网

ARTICLE DETAIL

資訊詳情

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

開源低代碼工具ToolJet實(shí)戰(zhàn):快速構(gòu)建可控的內(nèi)部系統(tǒng)后臺(tái)

開源低代碼工具ToolJet實(shí)戰(zhàn):快速構(gòu)建可控的內(nèi)部系統(tǒng)后臺(tái) 如果你所在的團(tuán)隊(duì)經(jīng)常要做“內(nèi)部運(yùn)營后臺(tái)”你大概率經(jīng)歷過這些場景需求方說“就一個(gè)簡單的訂單列表加個(gè)篩選再弄個(gè)導(dǎo)出”結(jié)果排期排了一周后端接口寫好了前端頁面又要從頭搭菜單、權(quán)限、表格、彈窗等系統(tǒng)上線需求又變了你還得從那一堆只有你自己看得懂的代碼里找到修改點(diǎn)。這正是低代碼工具存在的理由。但很多人對低代碼的顧慮也很真實(shí)平臺(tái)綁定、數(shù)據(jù)不在自己手里、擴(kuò)展困難、關(guān)鍵邏輯沒法調(diào)試。這篇要聊的 ToolJet恰好踩在“低代碼效率”和“開發(fā)者可控性”的交叉點(diǎn)上。它是一個(gè)開源的、可自托管的低代碼平臺(tái)能快速搭建內(nèi)部工具同時(shí)又能讓你保留對數(shù)據(jù)、代碼和部署環(huán)境的控制權(quán)。它的定位很像 Retool 的開源替代方案適合那些不想把核心業(yè)務(wù)數(shù)據(jù)交給第三方 SaaS又不想為每個(gè)內(nèi)部后臺(tái)重復(fù)編寫 CRUD 頁面的團(tuán)隊(duì)。文章會(huì)從 ToolJet 的核心概念講起然后帶你從零部署一個(gè)可用實(shí)例再用一個(gè)“訂單查詢后臺(tái)”的例子把數(shù)據(jù)源接入、查詢編寫、組件綁定完整走一遍。最后會(huì)給出常見的坑、工程建議以及我對這類工具適用邊界的判斷。讀完你可以直接照著搭出一個(gè)能用的內(nèi)部工具而不是只停留在“看過介紹”。1. 這篇文章真正要解決的問題ToolJet 解決的問題本質(zhì)上是“內(nèi)部工具研發(fā)成本”的問題。一個(gè)互聯(lián)網(wǎng)團(tuán)隊(duì)內(nèi)部通常有大量低頻但必要的后臺(tái)系統(tǒng)運(yùn)營配置臺(tái)、訂單查詢臺(tái)、用戶標(biāo)簽管理、對賬異常處理、活動(dòng)數(shù)據(jù)看板。這些系統(tǒng)的特點(diǎn)是邏輯不復(fù)雜但數(shù)量多使用人數(shù)少但都是關(guān)鍵角色業(yè)務(wù)變化快需求經(jīng)常調(diào)整。如果全部用正式前后端工程的方式開發(fā)成本往往很高。一次需求從排期到上線可能要一周甚至更久真正寫代碼的時(shí)間可能只有半天剩下的大頭都在溝通、聯(lián)調(diào)和流程上。傳統(tǒng)低代碼平臺(tái)或 SaaS 工具可以縮短這個(gè)周期但新的問題又會(huì)出現(xiàn)你的數(shù)據(jù)結(jié)構(gòu)可能受限于平臺(tái)定義你的業(yè)務(wù)數(shù)據(jù)要經(jīng)過第三方服務(wù)器平臺(tái)升級可能影響已有應(yīng)用想在關(guān)鍵路徑上寫一段特殊邏輯時(shí)又發(fā)現(xiàn)能力邊界不夠。ToolJet 選擇的路徑是“把內(nèi)部工具所需的通用能力做成可視化積木同時(shí)保留開發(fā)者深度介入的入口”。它提供拖拽式 UI 編輯器、豐富的數(shù)據(jù)源連接器、查詢管理器和權(quán)限角色同時(shí)因?yàn)槭情_源項(xiàng)目你可以自托管、看源碼、自定義組件甚至把它集成到自己的工程體系里。因此最應(yīng)該關(guān)注 ToolJet 的讀者有幾類后端開發(fā)或全棧開發(fā)需要頻繁交付內(nèi)部系統(tǒng)團(tuán)隊(duì)負(fù)責(zé)人希望減少內(nèi)部工具維護(hù)成本以及數(shù)據(jù)工程師需要快速搭建數(shù)據(jù)處理和展示界面。如果你所在的團(tuán)隊(duì)已經(jīng)有完整的低代碼平臺(tái)并且用得很好那不一定需要遷移。但如果你還在用“每個(gè)后臺(tái)單獨(dú)做一個(gè) Web 工程”的方式ToolJet 這類工具值得認(rèn)真評估。2. ToolJet 的基礎(chǔ)概念與核心架構(gòu)在動(dòng)手部署之前有必要先理解 ToolJet 的抽象模型。它看起來像一個(gè)“網(wǎng)頁搭建工具”但在技術(shù)本質(zhì)上它是一個(gè)前后端分離的 Web 應(yīng)用運(yùn)行時(shí)。從整體架構(gòu)看ToolJet 包含三個(gè)核心部分前端構(gòu)建器、后端服務(wù)和元數(shù)據(jù)庫。前端構(gòu)建器負(fù)責(zé)拖拽采集配置組件屬性、事件綁定、查詢配置等數(shù)據(jù)會(huì)存儲(chǔ)到元數(shù)據(jù)庫后端服務(wù)則負(fù)責(zé)執(zhí)行查詢、管理應(yīng)用發(fā)布、鑒權(quán)和組織信息。換句話說配置本身也是一種“代碼”而 ToolJet 幫你管理了這套配置的運(yùn)行與版本。為了后續(xù)操作不迷路你需要先記住以下核心概念概念通俗解釋在 ToolJet 中的角色Application應(yīng)用一個(gè)內(nèi)部工具就是一個(gè)應(yīng)用包含頁面、組件、查詢、事件的一套完整配置組件Components頁面上的輸入框、表格、按鈕、圖表用戶與數(shù)據(jù)交互的入口Data Source數(shù)據(jù)源你業(yè)務(wù)數(shù)據(jù)的來源數(shù)據(jù)庫、REST API、對象存儲(chǔ)等連接配置Query查詢對數(shù)據(jù)源執(zhí)行的一次讀取或?qū)懭氩僮鲝臄?shù)據(jù)源取數(shù)或?qū)懟厥菙?shù)據(jù)流的核心Transformer轉(zhuǎn)換器查詢拿到結(jié)果后的加工函數(shù)在查詢結(jié)果返回組件前做數(shù)據(jù)清洗、字段映射Event Handler事件處理用戶操作或查詢狀態(tài)變化后的響應(yīng)比如點(diǎn)擊按鈕后觸發(fā)查詢、彈出提示框權(quán)限角色誰能編輯、誰能查看團(tuán)隊(duì)協(xié)作與安全邊界理解這些概念的關(guān)鍵是組件和組件之間不直接通信它們通過數(shù)據(jù)源和查詢連接。你在頁面上放一個(gè)表格表格的 Data 屬性通常綁定某一個(gè)查詢的返回結(jié)果當(dāng)查詢執(zhí)行完成并返回?cái)?shù)據(jù)時(shí)表格會(huì)自動(dòng)刷新。用戶點(diǎn)擊按鈕則通過事件處理觸發(fā)另一個(gè)查詢比如插入一條記錄或者重新拉取列表。這套模型本質(zhì)上就是經(jīng)典的“后端 API 前端頁面”只不過 API 的調(diào)用方式被配置化了前端頁面的渲染被拖拽化了。它不是讓你不寫代碼而是把重復(fù)、固定的部分變成配置把真正有業(yè)務(wù)邏輯的部分留給你用 SQL 或 JavaScript 來表達(dá)。3. ToolJet 適合什么場景不適合什么場景判斷一個(gè)工具是否值得引入不能只看它的能力集還要看它和你團(tuán)隊(duì)的現(xiàn)狀是否匹配。先說適合的場景。第一類是運(yùn)營和業(yè)務(wù)后臺(tái)。這類系統(tǒng)通常數(shù)據(jù)模型穩(wěn)定交互以列表、篩選、詳情、編輯為主。用 ToolJet 連接業(yè)務(wù)數(shù)據(jù)庫寫好查詢綁上表格和表單十幾分鐘就能完成一個(gè)可用版本。后續(xù)字段變化也只需要修改查詢和組件綁定比改前后端代碼輕得多。第二類是數(shù)據(jù)查看和簡單分析界面。如果你需要把數(shù)據(jù)庫中的數(shù)據(jù)可視化又不想引入完整的數(shù)據(jù)產(chǎn)品ToolJet 的圖表組件配合查詢能快速搭建一個(gè)實(shí)時(shí)看板。數(shù)據(jù)權(quán)限由你的數(shù)據(jù)庫賬號(hào)或 ToolJet 角色控制比把數(shù)據(jù)導(dǎo)出到 Excel 再郵件分發(fā)要安全。第三類是低頻率的內(nèi)部審批或工單處理流程。ToolJet 很多版本提供可視化工作流編輯能力適合做“數(shù)據(jù)狀態(tài)流轉(zhuǎn) 通知 外部 API 調(diào)用”這類輕流程。注意它并不適合取代專業(yè)的 BPM 引擎復(fù)雜、長鏈路、強(qiáng)一致性的流程仍建議使用正式工作流系統(tǒng)。再說不太適合的場景。高并發(fā)、面對 C 端用戶的生產(chǎn)系統(tǒng)肯定不適合。ToolJet 生成的界面是內(nèi)部工具體驗(yàn)不是經(jīng)過性能優(yōu)化的終端產(chǎn)品。復(fù)雜的前端交互比如極度定制化的富文本編輯器、復(fù)雜圖形畫布、專業(yè)可視化場景拖拽組件也很難完全替代代碼。另外如果你需要的是一個(gè)完全離線、網(wǎng)絡(luò)隔離極嚴(yán)格的封閉環(huán)境自托管 ToolJet 依然有一堆依賴服務(wù)需要維護(hù)需要做額外評估。這里還有一個(gè)容易被忽略的判斷維度團(tuán)隊(duì)是否愿意維護(hù)一個(gè)低代碼平臺(tái)本身。自托管 ToolJet 意味著你要負(fù)責(zé)它的升級、備份、監(jiān)控和問題排查。它降低了業(yè)務(wù)應(yīng)用的開發(fā)成本但引入了一個(gè)新的基礎(chǔ)設(shè)施組件。這個(gè)成本在團(tuán)隊(duì)規(guī)模很小時(shí)可能感知不強(qiáng)但當(dāng)應(yīng)用數(shù)量達(dá)到幾十個(gè)、用戶達(dá)到幾百人時(shí)平臺(tái)本身的穩(wěn)定性、版本升級策略和團(tuán)隊(duì)使用規(guī)范都必須跟上。4. ToolJet 環(huán)境準(zhǔn)備與部署方式ToolJet 提供了云托管版和開源自托管版二者的區(qū)別主要體現(xiàn)在維護(hù)責(zé)任和定制自由度上。實(shí)際項(xiàng)目里我更推薦先用托管演示環(huán)境或本地 Docker 把流程走通確認(rèn) ToolJet 能覆蓋你的場景后再?zèng)Q定是否自托管。自托管最主流的部署方式是 Docker Compose。如果你準(zhǔn)備在生產(chǎn)環(huán)境使用建議為 ToolJet 準(zhǔn)備一臺(tái)獨(dú)立的 Linux 服務(wù)器。下面是一套基礎(chǔ)準(zhǔn)備工作。4.1 環(huán)境要求一臺(tái) Linux 服務(wù)器建議配置不低于 2 核 4GB 內(nèi)存實(shí)際占用取決于應(yīng)用數(shù)量和并發(fā)查詢量。Docker 與 Docker Compose 插件。這里不限定精確版本建議使用當(dāng)前主流穩(wěn)定版本。一個(gè)域名生產(chǎn)環(huán)境推薦并在 DNS 解析到服務(wù)器。用于 HTTPS 的證書可以用 Nginx 或 Caddy 反向代理終止 TLS。ToolJet 的完整部署模板通常從官方 GitHub 倉庫獲取不同版本的 compose 文件可能會(huì)有差異。部署前請先查閱官方部署文檔中對應(yīng)版本的說明。4.2 獲取部署配置并生成密鑰官方倉庫通常會(huì)提供示例環(huán)境變量文件和 compose 文件。部署前需要生成兩個(gè)關(guān)鍵密鑰SECRET_KEY_BASE和LOCKBOX_MASTER_KEY。這兩個(gè)值直接關(guān)系到會(huì)話加密和數(shù)據(jù)加密不能使用默認(rèn)值。# 生成兩個(gè)足夠隨機(jī)的密鑰 openssl rand -hex 32 openssl rand -hex 32把生成的值保存下來寫入環(huán)境變量文件。環(huán)境變量示例大致如下# 部署域名開發(fā)環(huán)境可以是 http://localhost:8080 TOOLJET_HOSThttp://your-domain.com # 是否允許新用戶注冊生產(chǎn)環(huán)境建議先關(guān)閉 ENABLE_SIGNUPtrue # 數(shù)據(jù)庫連接配置compose 模板中通常已預(yù)填 # POSTGRES_HOSTpostgres # POSTGRES_PORT5432 # POSTGRES_DBtooljet # POSTGRES_USERpostgres # POSTGRES_PASSWORDchange-me # 必填兩個(gè)隨機(jī)密鑰 SECRET_KEY_BASE替換為第一個(gè)openssl輸出 LOCKBOX_MASTER_KEY替換為第二個(gè)openssl輸出不要把真實(shí)的密鑰寫死在代碼倉庫里。在實(shí)際部署中可以優(yōu)先使用 Docker Secret、云廠商的密鑰管理服務(wù)或 CI/CD 系統(tǒng)注入的安全環(huán)境變量。4.3 啟動(dòng)服務(wù)執(zhí)行啟動(dòng)命令docker compose up -d啟動(dòng)完成后通過docker compose ps查看服務(wù)狀態(tài)。正常情況下會(huì)看到多個(gè)容器包括 ToolJet 主服務(wù)、PostgreSQL 元數(shù)據(jù)庫等。如果TOOLJET_HOST配的是http://localhost:8080你可以在瀏覽器直接訪問這個(gè)地址。第一次訪問會(huì)進(jìn)入初始化引導(dǎo)流程。如果ENABLE_SIGNUPtrue你可以先創(chuàng)建一個(gè)管理員賬號(hào)。這里有一個(gè)實(shí)用建議剛搭好環(huán)境后不要急著在正式數(shù)據(jù)源上操作先通過官方示例應(yīng)用體驗(yàn)一下界面和數(shù)據(jù)流再開始連接你真正的業(yè)務(wù)數(shù)據(jù)。5. 完整示例從零搭建一個(gè)訂單查詢后臺(tái)接下來用一個(gè)非常典型的內(nèi)部工具場景——訂單查詢后臺(tái)把 ToolJet 的核心流程串起來。假設(shè)你有一個(gè)訂單數(shù)據(jù)庫需要做一個(gè)頁面讓運(yùn)營同學(xué)按狀態(tài)查詢訂單并看到總銷售額。這里會(huì)先準(zhǔn)備一張測試表再在 ToolJet 里完成數(shù)據(jù)源、查詢、組件綁定和交互觸發(fā)。整個(gè)過程體現(xiàn)的并不是“不用寫代碼”而是“只用寫必要的 SQL 和少量 JS”。5.1 準(zhǔn)備測試數(shù)據(jù)為了方便演示先在 PostgreSQL 中創(chuàng)建一張訂單表并寫入測試數(shù)據(jù)。-- 創(chuàng)建訂單表 CREATE TABLE IF NOT EXISTS orders ( id SERIAL PRIMARY KEY, order_no VARCHAR(32) NOT NULL, customer_name VARCHAR(64) NOT NULL, product_name VARCHAR(128) NOT NULL, quantity INT NOT NULL, total_amount NUMERIC(10,2) NOT NULL, status VARCHAR(20) NOT NULL DEFAULT pending, created_at TIMESTAMP NOT NULL DEFAULT NOW() ); -- 寫入幾條測試數(shù)據(jù) INSERT INTO orders (order_no, customer_name, product_name, quantity, total_amount, status) VALUES (SO20250101001, 張三, 企業(yè)版訂閱, 1, 2999.00, paid), (SO20250101002, 李四, 團(tuán)隊(duì)版訂閱, 3, 899.00, paid), (SO20250102001, 王五, 專業(yè)版訂閱, 1, 1499.00, pending), (SO20250102002, 趙六, 企業(yè)版訂閱, 2, 5998.00, refunded), (SO20250103001, 錢七, 團(tuán)隊(duì)版訂閱, 1, 299.00, pending);這段 SQL 在任何支持 PostgreSQL 的客戶端里執(zhí)行都可以。它的目的是構(gòu)造一個(gè)足夠真實(shí)的業(yè)務(wù)表后面所有 ToolJet 演示都基于這張表。5.2 在 ToolJet 中添加 PostgreSQL 數(shù)據(jù)源進(jìn)入 ToolJet 工作區(qū)后先添加數(shù)據(jù)源。在左側(cè)導(dǎo)航中找到數(shù)據(jù)源或數(shù)據(jù)庫相關(guān)入口選擇 PostgreSQL填寫連接參數(shù)主機(jī)地址、端口、數(shù)據(jù)庫名、用戶名、密碼。如果 ToolJet 與數(shù)據(jù)庫部署在同一 Docker 網(wǎng)絡(luò)中主機(jī)地址一般填寫服務(wù)名而非localhost。填寫完成后點(diǎn)擊測試連接。如果失敗優(yōu)先檢查網(wǎng)絡(luò)連通性、數(shù)據(jù)庫賬號(hào)權(quán)限和端口放行。這個(gè)步驟是后續(xù)所有查詢的基礎(chǔ)連接配置通常只保存元數(shù)據(jù)信息不會(huì)直接讀取業(yè)務(wù)表結(jié)構(gòu)。5.3 創(chuàng)建查詢與 Transformer創(chuàng)建查詢是數(shù)據(jù)流的關(guān)鍵環(huán)節(jié)。在應(yīng)用編輯器中找到 Query Manager新建查詢選擇剛才創(chuàng)建的 PostgreSQL 數(shù)據(jù)源。第一個(gè)查詢是訂單列表查詢SELECT id, order_no, customer_name, product_name, quantity, total_amount, status, created_at FROM orders ORDER BY created_at DESC;第二個(gè)查詢是銷售額匯總SELECT COALESCE(SUM(total_amount), 0) AS total_amount FROM orders WHERE status paid;在 ToolJet 中查詢配置區(qū)還能追加 Transformer。所謂 Transformer就是一段 JavaScript 函數(shù)在數(shù)據(jù)庫原始結(jié)果返回給組件之前對數(shù)據(jù)處理一次。你可以用它在查詢結(jié)果上補(bǔ)充字段、格式化數(shù)字、過濾無效行。// Query Transformer 示例在訂單列表返回結(jié)果上增加一個(gè)格式化金額字段 return data.map(row { return { ...row, total_amount_display: ¥ Number(row.total_amount).toFixed(2) }; });Transformer 里執(zhí)行的是數(shù)據(jù)加工不是數(shù)據(jù)庫查詢因此不適合做復(fù)雜的聚合邏輯。聚合仍應(yīng)該交給 SQLTransformer 負(fù)責(zé)展示層的數(shù)據(jù)整理。5.4 在畫布中綁定組件查詢創(chuàng)建好后需要把結(jié)果展示到界面上。從左側(cè)組件庫拖入一個(gè) Table 組件到畫布。把 Table 的 Data 屬性設(shè)置為{{ listOrders.data }}這里的雙花括號(hào)是 ToolJet 的表達(dá)式語法里面的內(nèi)容是 JavaScript 表達(dá)式。listOrders是你的查詢名稱.data是查詢返回的數(shù)據(jù)數(shù)組。組件綁定后點(diǎn)擊預(yù)覽或運(yùn)行查詢表格就會(huì)顯示訂單數(shù)據(jù)。再拖入一個(gè) Text 組件或 Statistic 組件用于顯示銷售總額。同樣把它的值綁定到匯總查詢{{ summaryOrder.data[0].total_amount }}如果選擇的是 Statistic 組件通常只需要配置 Value 字段并選擇對應(yīng)查詢結(jié)果字段。這里的要點(diǎn)是理解表達(dá)式的數(shù)據(jù)流查詢先執(zhí)行組件再讀取查詢結(jié)果。5.5 添加篩選與刷新交互靜態(tài)列表顯然不夠?,F(xiàn)在添加一個(gè)下拉選擇組件讓用戶按訂單狀態(tài)篩選。新建一個(gè)查詢使用 ToolJet 表達(dá)式把下拉組件的選中值注入 SQLSELECT id, order_no, customer_name, product_name, quantity, total_amount, status, created_at FROM orders WHERE {{ statusFilter.selectedOptionValue }} ALL OR status {{ statusFilter.selectedOptionValue }};需要說明的是不同版本對組件值的表達(dá)式變量命名會(huì)有差異常見形式是{{ statusFilter.selectedOptionValue }}或{{ statusFilter.value }}。你在配置下拉組件時(shí)可以檢查組件的可用屬性以當(dāng)前版本實(shí)際支持為準(zhǔn)。再添加一個(gè)“刷新”按鈕在其事件配置里新增 Event Handler事件選擇 Click動(dòng)作選擇 Run Query目標(biāo)查詢選擇listOrders。這樣用戶點(diǎn)擊按鈕后ToolJet 會(huì)重新執(zhí)行訂單列表查詢界面數(shù)據(jù)同步更新。到這里一個(gè)包含列表展示、金額匯總、狀態(tài)篩選和手動(dòng)刷新的訂單查詢后臺(tái)已經(jīng)成型。5.6 發(fā)布應(yīng)用點(diǎn)擊編輯器右上角的發(fā)布按鈕ToolJet 會(huì)把當(dāng)前版本發(fā)布給有權(quán)限訪問的用戶。在發(fā)布之前最好先保存一次草稿版本。發(fā)布后的鏈接可以分享給團(tuán)隊(duì)內(nèi)部成員。這里不建議直接使用 Public 公開訪問權(quán)限而是讓用戶通過工作區(qū)賬號(hào)登錄后按角色查看。6. 對接 REST API 數(shù)據(jù)源與數(shù)據(jù)加工思路數(shù)據(jù)庫直連是 ToolJet 最常見的用法但很多內(nèi)部工具的數(shù)據(jù)源并不只是數(shù)據(jù)庫還可能來自企業(yè)內(nèi)部的 HTTP 服務(wù)。ToolJet 也支持 REST API 數(shù)據(jù)源。一個(gè)常見場景部門訂單系統(tǒng)已經(jīng)封裝了訂單查詢接口返回的是 JSON 數(shù)據(jù)但字段名是下劃線風(fēng)格而且接口分頁結(jié)構(gòu)比較嵌套。你可以新建一個(gè) REST API 查詢配置請求方法、URL、Headers 和 Body然后在 Transformer 里做數(shù)據(jù)整形。假設(shè)接口返回結(jié)構(gòu)是{ data: { list: [...] } }在 Transformer 中可以這樣處理// REST API 查詢的 Transformer 示例 const rawList data.data.list || []; return rawList.map(item ({ orderNo: item.order_no, customer: item.customer_name, amount: item.total_amount, status: item.status, createdAt: item.created_at }));在這里SQL 負(fù)責(zé)數(shù)據(jù)庫內(nèi)的過濾聚合REST API 負(fù)責(zé)獲取遠(yuǎn)程數(shù)據(jù)Transformer 負(fù)責(zé)把遠(yuǎn)程數(shù)據(jù)轉(zhuǎn)換為組件可直接展示的形態(tài)。這種分層思路會(huì)讓 ToolJet 應(yīng)用更容易維護(hù)。另外一個(gè)用途是寫回?cái)?shù)據(jù)。你可以在表單按鈕的點(diǎn)擊事件中觸發(fā)一個(gè) REST API 查詢把用戶在 ToolJet 表單里填寫的內(nèi)容提交給自己的后端服務(wù)由后端做業(yè)務(wù)校驗(yàn)和數(shù)據(jù)落庫。ToolJet 在這里扮演的是“快速開發(fā)的前端界面 API 調(diào)用客戶端”真正的業(yè)務(wù)完整性和安全管控仍然留在你的后端服務(wù)中。7. 權(quán)限、角色與發(fā)布管理內(nèi)部工具涉及業(yè)務(wù)數(shù)據(jù)權(quán)限模型不能忽略。ToolJet 的權(quán)限通常從三個(gè)層面理解工作區(qū)級別、應(yīng)用級別和數(shù)據(jù)源級別。工作區(qū)級別會(huì)區(qū)分管理員、普通成員等角色。管理員負(fù)責(zé)數(shù)據(jù)源配置、應(yīng)用發(fā)布、成員管理普通成員可能被允許創(chuàng)建應(yīng)用或只能使用被分配的應(yīng)用。應(yīng)用級別可以設(shè)置哪些角色能編輯哪些角色只能以只讀方式訪問。數(shù)據(jù)源級別則通過連接此數(shù)據(jù)源時(shí)使用的數(shù)據(jù)庫賬號(hào)密碼來約束底層權(quán)限。實(shí)際項(xiàng)目中的一個(gè)穩(wěn)妥做法是為 ToolJet 創(chuàng)建獨(dú)立的數(shù)據(jù)庫賬號(hào)而不是直接使用數(shù)據(jù)庫超級管理員賬號(hào)。例如只讀類應(yīng)用使用tooljet_readonly賬號(hào)連接數(shù)據(jù)庫該賬號(hào)只有 SELECT 權(quán)限需要寫回?cái)?shù)據(jù)的應(yīng)用再單獨(dú)使用一個(gè)最小寫權(quán)限賬號(hào)。這樣即使 ToolJet 前端配置被誤操作也不會(huì)直接放大數(shù)據(jù)庫權(quán)限影響。發(fā)布管理上ToolJet 會(huì)把應(yīng)用從草稿狀態(tài)發(fā)布為正式版本。對有版本回滾需求的團(tuán)隊(duì)建議在重要調(diào)整前記錄當(dāng)前版本或者先復(fù)制應(yīng)用作為備份再在副本上做改動(dòng)驗(yàn)證沒問題后切換。8. 常見問題與排查思路基于自托管 ToolJet 和日常使用經(jīng)驗(yàn)這里整理幾個(gè)容易遇到的問題及排查思路。問題現(xiàn)象可能原因排查方式解決方案部署后瀏覽器無法訪問環(huán)境變量中的 HOST 配置錯(cuò)誤或容器未啟動(dòng)完整查看docker compose ps與容器日志修改TOOLJET_HOST確認(rèn)端口映射正確后重啟容器反復(fù)重啟數(shù)據(jù)庫初始化失敗或密鑰環(huán)境變量缺失docker compose logs查看啟動(dòng)報(bào)錯(cuò)確認(rèn)SECRET_KEY_BASE、LOCKBOX_MASTER_KEY已正確配置ToolJet 連接不上業(yè)務(wù)數(shù)據(jù)庫網(wǎng)絡(luò)隔離、賬號(hào)權(quán)限或端口不通先用數(shù)據(jù)庫客戶端從同一網(wǎng)絡(luò)測試連接打通網(wǎng)絡(luò)創(chuàng)建獨(dú)立賬號(hào)并授權(quán)最小權(quán)限能連數(shù)據(jù)庫但查詢結(jié)果為空SQL 條件錯(cuò)誤或查詢未執(zhí)行成功查看查詢運(yùn)行返回的結(jié)果和錯(cuò)誤信息在數(shù)據(jù)庫客戶端單獨(dú)執(zhí)行 SQL排除 SQL 本身問題表格組件不顯示數(shù)據(jù)Data 屬性綁定表達(dá)式錯(cuò)誤檢查綁定表達(dá)式中的查詢名稱和.data路徑修正組件 Data 屬性確認(rèn)查詢名稱拼寫一致點(diǎn)擊按鈕沒有反應(yīng)事件處理器沒有配置或選錯(cuò)查詢檢查按鈕的事件配置重新添加 Run Query 事件并選擇正確查詢Transformer 返回結(jié)果不對對原始數(shù)據(jù)結(jié)構(gòu)理解有誤先在不帶 Transformer 的情況下運(yùn)行查詢查看原始輸出在 Transformer 中用return返回處理后的數(shù)組遇到問題時(shí)最有效的排錯(cuò)路徑是先看查詢是否能獨(dú)立運(yùn)行并通過再看組件綁定是否正確最后檢查事件觸發(fā)鏈路。ToolJet 的查詢編輯器中一般會(huì)顯示運(yùn)行結(jié)果和錯(cuò)誤信息這是定位問題的最直接入口不要只盯著頁面上不顯示數(shù)據(jù)的結(jié)果看。9. 生產(chǎn)環(huán)境部署與工程建議從跑通 Demo 到真正讓團(tuán)隊(duì)依賴 ToolJet中間還差一套工程規(guī)范。以下幾點(diǎn)是我認(rèn)為比較關(guān)鍵的生產(chǎn)環(huán)境建議。第一不要在容器外面裸跑 HTTP。自托管 ToolJet 默認(rèn)是 Web 服務(wù)建議在前面增加反向代理并啟用 HTTPS。使用 Nginx 或 Caddy 都可以配置時(shí)把對應(yīng)域名和 TLS 證書指向 ToolJet 服務(wù)端口即可。這樣既能加密傳輸也能統(tǒng)一控制訪問入口。第二做好元數(shù)據(jù)庫的備份。ToolJet 自身的應(yīng)用配置、用戶信息都保存在它的元數(shù)據(jù)庫中相當(dāng)于這個(gè)平臺(tái)的“源代碼”。建議把元數(shù)據(jù)庫納入日常備份策略備份頻率和應(yīng)用變更頻率匹配。否則一次誤刪除應(yīng)用或數(shù)據(jù)庫損壞會(huì)造成大量配置丟失。第三建立數(shù)據(jù)源賬號(hào)隔離規(guī)范。給 ToolJet 使用的業(yè)務(wù)數(shù)據(jù)庫賬號(hào)應(yīng)該遵循最小權(quán)限原則。單獨(dú)的只讀應(yīng)用用只讀賬號(hào)需要寫數(shù)據(jù)的應(yīng)用用專門申請的低權(quán)限賬號(hào)。不要把云數(shù)據(jù)庫的高權(quán)限賬號(hào)直接配置在 ToolJet 數(shù)據(jù)源里。第四密鑰管理要自動(dòng)化。SECRET_KEY_BASE、LOCKBOX_MASTER_KEY、數(shù)據(jù)庫密碼等都屬于敏感信息。部署配置應(yīng)該放入密鑰管理環(huán)境而不是以明文形式提交到 Git 倉庫。推薦至少做到部署環(huán)境從環(huán)境變量注入密鑰禁止把包含密鑰的.env文件提交到代碼庫。第五應(yīng)用內(nèi)部不要硬編碼敏感信息。低代碼工具很容易讓人忽略安全邊界。如果某個(gè)應(yīng)用需要調(diào)用第三方服務(wù)應(yīng)該優(yōu)先將 API 密鑰放在 ToolJet 支持的安全存儲(chǔ)位置或者通過你自己的后端服務(wù)做一層代理只在 ToolJet 中配置代理地址。不要把真實(shí)密鑰寫在頁面組件的默認(rèn)值里。第六版本升級前先在測試環(huán)境驗(yàn)證。ToolJet 迭代速度不慢新版本可能引入新特性也可能改變已有組件行為。生產(chǎn)環(huán)境升級前先測試環(huán)境備份當(dāng)前版本的數(shù)據(jù)和配置執(zhí)行升級后用核心應(yīng)用做一次回歸確認(rèn)沒有破壞性變化后再升級生產(chǎn)。第七控制自建應(yīng)用的數(shù)量和復(fù)雜度。內(nèi)部工具的數(shù)量增長很快但并不是所有應(yīng)用都該放在同一個(gè) ToolJet 實(shí)例里。一個(gè)團(tuán)隊(duì)可以按業(yè)務(wù)域拆分工作區(qū)避免把所有應(yīng)用和數(shù)據(jù)源集中在一個(gè)空間里。對于復(fù)雜度明顯飆升的應(yīng)用比如大量相互依賴的事件邏輯、復(fù)雜嵌套的 Transformer應(yīng)該重新評估是否已經(jīng)超出了低代碼平臺(tái)的舒適區(qū)。10. 總結(jié)與后續(xù)學(xué)習(xí)方向ToolJet 的價(jià)值不在于“不用寫代碼”而在于把內(nèi)部工具開發(fā)中最耗時(shí)的通用部分比如頁面搭建、數(shù)據(jù)源連接、查詢調(diào)度、權(quán)限配置和部署發(fā)布變成可配置的標(biāo)準(zhǔn)化流程。它把開發(fā)者的精力釋放出來讓你專注于業(yè)務(wù)邏輯、數(shù)據(jù)模型和安全邊界。同時(shí)開源自托管模式讓團(tuán)隊(duì)可以掌握平臺(tái)本身而不是被動(dòng)接受某個(gè) SaaS 的規(guī)則限制。如果你準(zhǔn)備落地實(shí)踐建議按下面順序行動(dòng)先用官方示例或自己的測試庫把本文的訂單查詢示例完整走一遍然后梳理團(tuán)隊(duì)里一個(gè)最不起眼的小后臺(tái)嘗試用它替代跑通后再逐步擴(kuò)展數(shù)據(jù)源和權(quán)限模型。不要一上來就追求建設(shè)一個(gè)龐大的低代碼平臺(tái)內(nèi)部工具本身也是從最小可行性開始的。下一步可以繼續(xù)深入的方向包括ToolJet 的工作流編輯能力適合處理簡單審批和狀態(tài)流轉(zhuǎn)多環(huán)境管理把開發(fā)、測試、生產(chǎn)環(huán)境的數(shù)據(jù)源隔離開以及自定義組件開發(fā)如果標(biāo)準(zhǔn)組件覆蓋不了你的交互開源項(xiàng)目允許你擴(kuò)展。最后提醒一點(diǎn)一切工具都只是手段判斷一個(gè)內(nèi)部工具是否成功的標(biāo)準(zhǔn)仍然是它能不能讓團(tuán)隊(duì)更快、更安全地完成業(yè)務(wù)目標(biāo)。選一個(gè)合適的場景先跑起來比反復(fù)評估更實(shí)際。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
加勒比伊人影院| 日本一区二区成人在线| 91爰爱欧美| 97人人操人人摸| 一本一道久久综合久久| 亚洲鸥美色图| 一区二区三区日韩欧美 | 亚洲宅男天堂| 久操网无码在线| 亚洲色图欧洲| 学生妹天天看| 加勒比人妻综合| 亚洲欧洲国产综合av| 亚洲高清视频在线免费观看| 久久高潮妇女视频| 亚洲五区熟女| 久久婷婷一区二| 国产精品福利视频播放| 夜夜爽夜夜| 白丝在线一区| 久久精精区一区二区一蜜桃一区二区| 国产精品一区二区三区,亚洲综合 性开放中文AV高清无码免费看 | 日韩午夜啪啪视频| 欧美日韩性爱电影在线| 女人天堂网| 91 丝袜在线观看| 91AV老熟女视频| 伊人久久婷婷| 91足交| 婷婷婷婷婷婷久久久久| 女沟厕偷窥piss小便| 99热这里只有精品1| 熟妇最新先锋一二三区| 亚洲黑丝在线| 蜜臀在线免费观看在线免费观看| 亚洲欲色9532548967一区| 五月天综合在线| 91精品无码人妻系列| 国产51色综合久久免费| 超碰免费人人| 久久露脸国产老熟女| 国产一区二区精品久久99| 中文字幕三四区| 久久亚洲一区女同性恋中文字幕| 五月天综合网| 久久亚洲熟妇在线视频| 97一区二区蜜臀| 欧美三级中文字幕hd| 欧美亚洲色图另类国产| 国产不卡免费在线视频| 欧美另类精品xxxx| 亚洲成人日韩小说| 亚洲天堂AV在线播放| 91国产丝袜白虎| 色妇91| 中文自拍欧美影视| 欧美日韩插逼视频| 上海一级黄片| 国产女生在线| 五月花婷婷| 久久这里只精品99re66图| 男女猛烈无遮掩视频免费软件| 国产精品高潮久久久无码| 激情小说亚洲色图| 欧美五十路熟| 精品久久久久久亚洲| 婷色五月天| 女优视频第10页| 嗯嗯嗯啊啊在线观看| 东北女人的毛片| 91在线美女| 日产狠狠干| 黑人无码一区二区| 精品人妻一区二区视频| 日日玩天天干| 综合欧美激情网| 自拍大香蕉乱插| 精品免费成人久久| 国产一国产一级毛片古装| 国产亚洲日韩欧| h无码动漫在线观看| 一区二区三区机械有限公司| 婷婷午夜| 2017大香蕉国产精品久久| 日韩美女高潮喷水视频| 91亚洲欧美激情| 人人人摸人人| 亚洲综合五月天| 日韩欧美成人大香蕉| 欧美熟女逼久久久久久| 一区二区三区免费视频入口| 黄色高清无码无码破解免费暗网| 精品无码一二三四区| 人妖欧美一区二区| A级国产欧美激情在线| 九九精品99| 丁香五月婷婷啪啪| 青草视频人妻在线观看| 日本一区不卡| 久久男人精品| 亚洲综合影片| 东京热一区二区中文字幕| 99久久精品无码一区二区毛片免费| 国产伦乱91| 4141514逼喷水三级片| 亚州日韩97| 中文字幕三四区| 欧美视频在线视频免费va| 91久久国产综合久久| 骚逼自拍99| 成人精品久久久午夜福利| 色播五月丁香| 少好三P| 亚洲 自拍偷拍 欧美| 一区二区影院| 亚洲天堂人人妻| 夜夜嗨视频| 少妇xx精品| 九九九九日本| 国产久久成人| 热久久国产精品视频大陆精品| 色网亚洲人| 成人乱码一区二区三少妇| 抽查国产福利主播| 亚洲欧美日韩中文播放| 五月丁香六月激情| 久久精品久| 90后性网国产欧美| 殴美色网| 五月丁香啪| 97日韩欧美亚洲| 在线啊v一区| 亚洲黄色网址| 国产一区二区三区影片| 日本天堂在线播放| 果冻国产精品麻豆成人av| 狠狠色一区二区中文字幕| 日韩无码黄色片| 麻豆亚洲Av成人无码一区精品| 清纯唯美亚洲综合| 亚洲在高跟鞋自慰久久在色线| 久久久啊啊啊| 亚洲综合图文| 国产成人精品日本视频| 嗯嗯啊啊啊好爽| 超碰久在线天天做| 肥臀熟女一区二区三区视频| 亚洲无码太久| 岛国视频免费在线观看| 色香网| 色色婷| 青青操在线视频| 色色99| 777超碰| 偷拍亚洲高清图片| 思思热在线cao| 久草男人天堂| 99久久久久| 日本视频在线中文字幕| 在线情色电影 91大 | 亚洲黄色网址视频| 操逼日批| 午夜精品久久久99热蜜桃的功能特点 | 日日摸日日弄日日拍| 337p大胆噜噜噜噜噜91Av| 1区2区3区视频| 熟女精品一区二区三区| 最新av中文字幕高清| 欧美成人国产精品| 亚洲 欧美都市激情| 乱人乱色一区二区三区免费| 亚洲自拍欧美国产首页网曝| 岛国片在线播放| 97在线视频观看免费| 少妇二级| 色99在线| 国产日韩欧美中文在线播放| 亚洲欧美电影| 91模特在线观看| 欧美亚男人的天堂| 激情五月婷婷综合| 亚洲AV成人无码一二三久久| 久操免费电影| 丝袜无码a片| 美中日韩无码| 亚洲日本激情| 日本欧美不卡| 成人草草视频| 五月婷婷hd| 欧美大香蕉同搞| 热99re69精品8在线播放| 综合亚洲情色| av亚洲天堂资源网站| 91社操逼| 成人97人人超碰人人| 玖玖久久久| 欧美青青视频| 用力操死我| 丁香九月婷婷| 一个人免费HD91视频| 青青操网| 色综合国产在线观看| 亚洲日韩美女丝袜美腿人妻视频| 破处bbq| 亚洲日韩青青草色月| 极品美女福利在线观看| 色黄色美女大长腿午夜视频| 7777奇米影视久久| 一起草日韩| 国产9 9在线 | 亚洲| 91亚洲综合在线| 超碰97.com| 久久综合女优| 久久久久9| 国产第11页| 色九九九综合| 精品国产久久乱码| 久热大香蕉网站| 一区| 嫩草影院永久在线制服丝袜| 综合网久久| 日韩精彩免费| 一区中文字幕二区日韩| 日本午夜福利视频| 91久久伊人婷婷青青草| 欧洲一区二区三区免费| 国产精品午夜成人福利| 久久精品中文| 四虎精品永久在线观看| 少妇内射www在线观看视频| 一区二区三区男女操逼黄色小电影| 天天爽天天操| 亚熟在线| 国产和美国毛片| 人妻黑丝袜电影| 99色日| 超碰日韩美妻| 又黄又硬又粗又长国产视频| 九九九九亚洲| 欧美天天弄| 美女黄色91| 久久久久白虎| 激情欧美97| 国产精品一区二区三区,亚洲综合| 99人妻| JULIA一区二区三区在线播放| 欧美视频第二页| 久久久成人免费av电影| 强奸乱伦αv片| 九九亚洲色在线观看| 蜜臀久久99精品久久久久久婷婷| 欧美色图在线视频少妇| 涩五月婷婷| 国产麻豆福利av在线播放| 91亚洲欧美色图| 久久宗合亚洲| 清纯唯美第一页| 亚洲激情视频| ai欧美亚洲小说| 免费又黄又裸乳的视频| 加勒比人妻综合| 又大又长又粗又爽又黄| 亚春色色| 色5月婷婷| 少妇毛片久久| 久久久精品,3| 成人一道本免费视频| 顶级丝袜熟女一区二区三区| 丁香激情五月| h色99999| 国产精品午夜AV完会免费| 黄片国产精品一区二区| 欧美精品第3页| 色色五月婷婷| 亚州久久9| 国产成人精品网站| 欧美一区二区三区入口| 美女人妻色网站| 亚洲AV在线资源| A片大香蕉在线| 五月天婷精品激情| 亚洲清纯唯美| 日韩欧美福利视频看看| 五月激情影院| 玖玖久久久| 超碰97人人cao| 国产女性无套 免费观看| 伊人97色天使| 日本大香蕉综合网| 思思99热| 亚洲天天自拍| 9999免费精彩视频| 国产情色第一第二页在线观看| 亚洲国产综合视频| 五月色综合| 欧美日韩美女精品久草一区二区三区| 热无码中文亚洲H一道本一区二区| 狠狠干综合| 日韩欧美天堂| 综合欧美日韩在线观看| 视频二区熟女人妻| 日韩色欲久久一二三四区| 欧美一级三级| 大香蕉伊人75| 久热婷婷| 国产精品一区二区密臀| 五月丁香综合| 欧美—性—交—色| 天天爱天天操| 九九AV| 精品国产乱码久久久久久久久1| 俺去啦自拍| A片三级无码| 91n免费处女| 亚洲成人免费中文字幕| 中文在线视频| 五月天婷婷色色| 土豪酒店各种姿势玩弄极品幼稚| 91三级理论片播放器| 超碰欧美97资源| 国产三级中文有码在线视频| 校园春色AV天堂| 亚洲天堂,男人| 国产精品久久蜜乳av| 人妻日日干| 九九九九九九免费视频| 久操大香蕉| 男人天堂毛片| 精品久久久久,69国产成人精| 欧在线一二区| 五月天久久婷婷亚洲| 美国人人操人人操| 成人一二三区| 三级网站超变态精品| 国产AV毛片| 久久禁| 国模限制级电影| 日韩偷拍一区二区三区| 国产sv美女内射| 狠狠色噜噜狠狠狠狠狠色综合久久 | 色五月AV在线| 亚洲 中文 女同| 国产精品内射婷婷一级二| 大香蕉宅男伊人| 天堂中文日本在线观看| 欧美激情内射| 嫩草伊人久久精品| 91熟女.com| 夜色91| 国产第25页在线观看| 97 超碰 人人做 人人爱| 夜夜嗨av午夜成人| 岛国片在线播放| 五月天婷婷成人网| 日韩天天本| 亚洲一级黄色毛片| 久久久9999| 久久,精品一二三| 99操碰| 操逼视频国产无套| 欧美精品一二三| 亚洲欧美精品一区天堂久久| 明星性猛交ⅹxxx乱大交| 色色国产| 亚洲无 码A片在线观看麻豆| 伊人丝袜美腿高跟在线观看高清| 日本精品性生活久久久| 91久久久久久| 色欲无码人妻日韩欧美精品| 男人的天堂视频精品乱在线| 美女AV一区二区| 凹凸视频特色日本特黄| 日本黄色大片一级视频免费麻豆| 一区二区播放| 免费超碰97久久| 午夜成人福利影视| 久久女人视频| 欧美精品偷拍| 色香阁在线| 一区二区三区精品久久| 國產尤物AV尤物在線觀看| 91w欧美| 中文字幕乱偷人妻久久艾草网| 人妻天天爽夜夜爽精品2| 小日子操bb在线看| 日韩中文字幕国产| 国产乱伦亚洲色图高清无码| 丁香色狠狠色综合久久小说| 九七超碰| 欧在线一二区| 大香蕉伊人网| 视频国产成人精品日本亚洲18| 青青草原av| 91欧美巨乳| 超碰97欧美日韩| 另类图片亚洲加勒比另类图片亚洲加勒比另类图片亚洲加勒比 | 欧美性爱伊人| 丁香五月天视频| 午夜男人一级A片7777| 无码WWW免费视频网站| 久久精品日韩| 日韩午夜精品一区二区三区电影| 免费强奸av| 欧美性爱三区二区| 成人福利视频网| 免费精品福利在线观看| 激情婷婷| 欧美 亚洲 制服 精品| 色妺妺在线视频| 国产欧美日韩女同性恋ww喷水精品| 综合色色网| 超碰人妻在线| 嗯啊不要啊在线| 美女露胸露屁股| 再深点灬舒服灬太大了好硬好爽| 日韩性爱视频免费在线| 亚洲色图激情小说| 麻豆性爱视频在线播放| 九九九精品一区二区无码| 精品人妻无码一区二区三区不卡-精品人妻无码一区二区...|精品少妇一区二区三 | SS久久| 一区二区视频你懂的| 国产人妻精品一区二区三区秋霞| 懂色av中文字幕| 国产91美女视频| 亚洲国产成人精品女人久久久| 91在线视频国产网站| 操操逼视频| 黄色免费网页无码| 白丝av| 五月天婷婷在线看| 清清一区二区三区四区不卡视频| 九一综合精品视品av| 射欧美综合| 亚拍在线| 香蕉99秘 一区精品蜜桃臀| 国产又粗又长视频| 少妇毛片久久| 天堂精品一区| 亚洲成人在线播放| 欧美亚洲美少妇一区二区| 大香蕉国产中文自拍| 豆1无夜无码| 91青青在线| 91最新综合| 东北老女人的激情视频| 中韩中文字幕在线观看| 无卡一区=区| 激情人妻另类| 台湾佬中文娱乐网久久久久久久久久com | 日韩免费簧片| 99视频自拍| 蜜臀在线免费观看在线免费观看| 9 1超碰九色| 91黑人狂躁丰满熟妇| 国产AV无码AV| 老女人老91妇女老热女| 久久专区| 亚州伊人色综台| 骚人妻少妇视频| 综合亚州欧美| 琪琪精品免费一区二区三区 | 欧美 亚洲 制服 精品| 吊色| 强奸乱伦麻豆| 欧美暴力猛交| 最近2018中文字幕在线高清第一页| 日韩av乱伦| 九九九精品一区二区无码| 国产白丝av| 五月婷婷大香蕉| 久久久久921| 日韩欧洲操屄视频| 亚洲情色1区| v91av| 五月天色色网站| 超碰碰小说97| 亚洲欧洲国产综合av| 男同专区一区二区三区在线| AV污污污污| 日韩紧密久久| 久久亚洲中文字幕视频| 精品久久久久,69国产成人精| 好吊爽好吊爽在线视频,中文字幕精品一区二区日本,国产良妇出轨视频在线观看, | 97Ai亚洲| 亚洲天堂性爱| 国产精品懂色tv影视免费观看 | 欧美色一二三| 91精品女厕偷拍视频| 大香蕉伊人在线成人AV在线观看| 天天上日日上日韩精品| 免费农村成人少妇人妻Aa一区二区视频 | 欧美在线电影| 久久侵犯人妻爽爽爽| 九九九久久久| 久久综合中文国产| 亚洲一区二区三区播放在线| 亚欧洲一区二区视频| 午夜无码精品免费看性色| 亚洲性综合| 国产97视频免费观看| 日本一久是| 亚洲Av无码成人精品国产| 中文熟女五十乱码在线| 久久怡红院| 男人的天堂99| 色鬼在线综合| 人妻人人做人人澡人人爽欧美一区| 欲女人妻性色av| 爆操无码| 亚洲欧美999| 久久久久免费少妇| 国产美女在线精品免费看| 欧美页片| 九九aV| 校园春色综合网| 国产精品久久久九九九| 国产精品青草综合久久| 水多多映视AV| 久操| 蜜色网色哟哟| 久久久工口| 免费网色网站| 国产一二三福利视频网| 熟女六十路| 无码高清国产AV| a片在线播放| 日本黄色裸日本黄色裸体| 做爱A级亚欧| 啊啊啊好大好深| 日韩激情视频| 中文字幕日本久久| 一本色道综合久久欧美| 理论久久婷婷网8| 99久久com免费视频′| 91爆操视频| 操国产逼| a啊啊啊啊啊啊啊啊一区二区| 六月婷激情福利天堂69| 91精品伊人久久久大香线蕉91| 麻豆成人AV| 亚洲美女色图| 天美传媒国产原创中文字幕亚洲欧美另类 | 综合久久六月久久婷婷| 超碰97首页| 亚洲日韩AV视色| 国产精品自在自拍视频| 国产在线综合福利网站| 蜜臀99精品国产高清在线观看| 色制服丝袜夫妻av一区| 91色噜噜狠狠| 综合色图亚洲欧美| 曰韩av中文字幕专区| 亚洲精品久久久久毛片A片拉屎| 色哟哟精品1精品2| 97精品国产精品免费观看| 无码少妇精品一区二区60岁老人| 性饥渴少妇av无码毛片| 91色交| 欧美色网络| 日韩欧美久久婷婷网站| 欧美综合加勒比在线| 欧美熟妇乱码在线一区| 成人综合色网| 91在线综合网| 久久99国产综合精品女同| 五月天婷婷基地| 五月丁香综合激情| 五月丁香六月激情综合| 青草视频在线看看看看看看看看看| 精品亚洲国产成人AV制服丝袜 | 99在线无码精品秘 入口黑人| 午夜福利国产欧美日韩夜夜| 粉嫩av平台| 亚洲 无码 偷拍| 91超碰丝袜制服| 精彩国产视频播放1区2区| 国产有码一区| 97这里都是精品| 天天看特黄的免费网站| 色天堂综合| 啊啊啊啊啊啊啊网址在线观看| 亚洲综合九| 97视频在线免费播放| 久久久草草精品| 欧美亚州综合网图片| 99在线精品视频| 免费精品福利在线观看| 国产女人与拘做受视频免费| 国产精品美女久久久久AⅤ国产馆| 国产精品久久久久久久电影渣男| 国产精品制服丝袜清纯唯美| 91精品伊人久久久大香线蕉91| av凤凰久久久| 男人天堂站| 久久久久ab| 人妻爽爽啪视频| 久久久555| av凤凰久久久| 亚洲天堂,男人| 欧美精品丝袜久久久中文字幕| 999在线电影香蕉| 人人妻人人操人人乐| 欧美一二三区四五区| 天天日天天屌天天操| 精品国产乱码久久久影院| 友优传媒精品在线一区二区| 麻花豆传媒剧国产MV出差| ?亚洲伊人伊成久久人综合网| 另类天堂| 人人噜夜夜操| 欧美色性情| 日本天天操| 女人爽到高潮久久久| 天天做天天爱天天爽AV| 老熟乱一区二区三区四区| 91天天看| 亚洲五月婷婷| 麻豆 亚洲 97| www.av不卡中文字幕| 国产家庭乱伦表演| 色吧五月| 亚洲综合校园春色| 偷拍 欧美 日韩| av网页一区二区三区| 不卡在线一区,精品一区二区三区中| 97色欧州| 日韩精品中文字幕人妻| 91日本在线观看| 亚洲视频二区| 日本中文字幕不卡视频| 国产成人网址| 久久99久久99精品天美传媒棢·纸:.| 久久久久亚洲三级电影| 极品丝袜无码| 97碰碰色| 午夜欧美女人操逼| 日产成人久久| 激情无码日韩| 精品美女少妇一区二区三区| 老熟女91| 天天欧美色| 超碰吊日色| 日韩欧美中文日韩欧美色| 欧亚第一综合网| 一二三区操逼国产91| 2010男人的天堂| 天天综合~91| 国产福利影视| 俺也射| 黄色区免费观看中文字幕| 99re在线观看| 日欧操屄| 手机久操欧美综合色码| 亚洲**2021在线观看| 五月婷婷激情综合| 色图四区| 婷婷丁香六月天| 九九热九九| 激情小说五月天| 高清孕妇孕交| 日韩伦理视频| 欧美色www亚洲国产阿娇要播| 久久伊人在线五区| 欧美成年人性爱视频免费观看| 黄色二级片网站| 亚洲国产另类在线中文| 国内操逼视频二区| 岛国免费黄色网址| 久久精品国产久精国产| 日韩去日本高清在| 国产麻豆91欧美一区二区久久婷婷国产精品| 国产AV高清AV无码| 九t超碰| 日本淫色网| 欧美高清无码免费视频高清版| 一道本东京热加勒比一区二区三区| 亚洲图片欧美色| 黑人天8A∨高清网站| 国产黄色在线播放观看| 黑人粗大V S日韩女优视频| 天天做日日爱夜夜爽| 日韩有码中文字幕女同性恋| 综合久草| 大香蕉www.超碰| 后入式999| 色五月婷婷在线| 九九九精品成人免费视频小说| 五月天伊人| 国产成人bd在线观看| 日本亚洲嫩草影院啪啪| 久久色人体| 一类av片在线看| 日韩精品人妻中文字幕不卡乱码| 天天干一区二区| 日韩黄片视频试看| 啊啊啊啊无码| 性色中出| 99热这里只有精品8| 婷婷操视频| 人妻熟女一区二区三区在线| 国产精品宅男免费| 天天看天天日天天操| 国产第11页| 尹人大香蕉视频在线| 色欲av一区二区三区蜜芽| 天操天操夜操夜月月年年操操| 日韩另类色图| 玖玖资源综合在线视频| av网站国产主播在线| 劲爆欧美人妖三区91| 久久亚洲不卡| 精品一区二区亚洲国产| 国产偷拍网站| 激情欧美97| a片亚洲一本通视频| 亚洲欧洲小说图片视频| 国产成人在线观看综合| 日本1区2区不卡视频| 网友自拍第1页| 中文一区二区| 日韩情色AV| 亚洲成人碰碰| 99精彩视频| 国模无码一区二区三区在线| 日韩综合成人免费视频| 天天综合,91入口| 一二三啪啪专区| 午夜男人av| 国产综合色精品在线观看| 老熟女综合网| 囯产精品强| 中文字幕精品乱码| 美女久久久久久久| 综合干干干av久久久综合网| 艹我哪美一区无码| 玖玖玖玖精品国产剧情| 性爱边摸边日免费AV| 日本αv| 精品无码久久久久久久杏吧| 密臀在线一区尤物| 大香蕉懂9| 性生活性生大爱77AV国产| 死我十八禁| 五十路人妻在线| 亚洲蜜臀视频精品久久| 96免费视频在线| 亚洲限制级| 97精品视频网站| 蜜屁Av| 日本中文字幕一区| 亚洲麻豆18发?| 色九九九综合| 97超碰久久色| 日韩熟女视频二区| 超碰伊人在线| 中文字幕第二页| 国产97/欧美| 男人的天堂va在线| 天天噜| 国产综合日韩伦理| 中文字幕在线免费观看2| 又大又大又大又粗爽高潮观看 | 91w欧美| 中文字幕一区二区视频在线观看| 试看日韩黄片| 大香蕉免费3| 国产精品亚洲高清在线| 尤物黄色在线观看网站| 亚洲最大的综合性av| 亚洲少妇中文字幕网址| 日本精品无码三级网站| 美女自卫慰黄网站免费| 97色色视频| 一道本东京热加勒比一区二区三区| 宅男午夜在线视频| 色九九综合AV| 一卡二卡在线播放| 2021国产成人精品久久| 亚洲av无码成电影在线播放| 粉嫩av在线一区二区| 另类在线| 国产精品色哟哟| 在线小说视频一区| 欧美狠狠干| 国产精品毛片?v一区二区三区| 日韩丝袜二区| 亚洲 欧美 天天| 日韩无码AB| 国产精品白丝AV| www.色吧5.com| 亚洲国产午夜真人一级片中文字幕精品黄网站| www99热| 亚洲精品欧洲精品| 天美传媒精品久久视频| AV麻豆免费一区| 99性视频| 国产精品。| 狠日欧美| 性影在线视频| 偷拍欧美激情| 五月天欧美色图| 亚洲欧洲成人在线电影| 欧美视频一区二区在线| 精品v1区| 欧美三四五区| 亚洲国产精品无码AV在线| 成人婷婷丁香| 蜜桃臀一区二区三区久久| 小说区 图片区色 综合区| 秋霞曰韩R级| 热久久91婷婷| 人人澡人人澡人人| 亚洲av综合色区图片亚洲| www.色婷婷| 91激情国产| 国产一级特黄大片处女| 中文字幕艹艹| 久久久久久久久久久久97| 18禁免费视频| 中美日韩毛片| 毛片一区二区| 噜噜噜狠狠色综合| 97在线日韩中文字幕| 青青免费在线视频一区| 麻豆 欧美 日韩| 日本不卡中文| 日韩一级片在线看| 夜夜操一区二区| 亚洲激情综合另类男同| 日韩女优中文字幕| 淫荡网址| 亚欧日韩成人| 欧美亚洲厕所精品偷拍91| 欧美精品庄| www.婷婷| 亚洲熟女诱惑| 婷婷色导航| 中文字幕一区二区三区人妻不卡 | 久久riav中文精品| 色噜噜国产在线| 丁香婷婷五月| 亚洲日本韩国极品一区二区| 国产美女高潮视频| 国产毛片久久久久久久| 99热超碰| 国产精品精品系列在线观看| 蜜桃精品一区二区三区ww| 一区二区影视| 小草精彩毛片| 精品人妻一区二区三区日产| 97香焦色区| 亚州男人天堂| 蜜桃视频精品一区二区三区| 欧洲性爱无码区| 色偷偷色偷偷欧美日韩| 久久黄片国产一区二区| 熟女网站最新| 亚洲成a人在线观看久| 激情婷婷丁香网| 国产精品亚洲一区二区三区四区| 日本一线产区和二线产区伦理片| 91丨九色丨东北熟女| 91亚州| 亚洲色图大香| 日韩偷拍一区二区三区| 96久久久精品| 伦理片秋霞免费影院| 天天久久| 96AV久久久| 成人三一级一片aaa| 久操| 亚洲熟妇丝袜在线观看| 久久中文字幕不卡人妻| 欧洲亚洲天堂精品 | 妇女乱色二区| 丁香五月天激情综合| 国产婷婷综合在线观看| 亚州春色| 国产毛片精品一区二区色欲黄A片| 成人久久久| 青草香蕉网| 国产AV超爽| 97日韩欧美| 成年人免费观看网站| 日本在线一二| 久干9操| 哈哈操电影| 人妻熟女一区二区三区在线| 国产乱人伦AVA麻豆软件.| 国产精品美女| 一区麻豆 高清中文字幕| 图片区小说区| 久久欲| 哈哈操 大香蕉| 日夜干射色啊| 91色色色| 中文字幕123| 亚洲在线欧美| 欧美综合色| 97中文字幕色| 久久男人的天堂国产| 白丝被操91| 亚洲精品国产拍免费91在线| 欧美熟妇亚洲版| 丝袜六区| 狠狠色丁香| 国内亚洲精彩视频在线| 草草草视频在线免费看| 99在线精品观看视频中文| 在线 亚洲 网爆 自拍| 激情抓乳插进去啪啪啪日韩 | av在线免费一区二区| 天天综合-91入口| 国产97/欧美| 最新精品久久蜜桃 | avav青青草久久夜| 草久久久| 国产一区二区三区不卡手机在线| 99精彩视频| 国产一区二区精品久久99| 波多野结衣之双飞调教在线播放| 精品少妇高潮久久| 午夜呻吟欧美| www.五月天| 成人片在线播放| 欧美日韩精品一区二区三区高清| 欧美春色| 国内一级精品| 97欧美色| 免费网色网站| 91网18| 天堂麻豆天美| 国产精品经典一卡久久久| 中文字幕啊啊啊在线观看视频| 丰满岳乱妇一区二区三区| 看日韩黄片| 家庭乱伦麻豆| 91bbb| 久久伦理视频久久大香蕉视频| 亚洲蜜臀懂色| 精品人妻一区二区三区-国产精品| 亚洲超碰在线| 色墦五月丁香| 九九综合久久| 丁香六月激情| 91狠狠色丁香婷婷综合久久| 激情深爱五月天| 色色五月天婷婷| 99精品在线观看| 成人五月香网在线| 色婷婷影院| 青青草日本无码| 人人操人人狠狠操| 五月天激情网图片| 色噜噜人妻av 中文字幕| 长长久久曰曰夜夜成人网| 97久精品| 久久久久久久久久久人妻| 天天夜夜久久| 午夜无码熟妇丰满人妻| 夜夜免费视频| 久久黄人人爽视频| 色欧洲| 人妻献身系列第54部| 大象AV在线| 韩国三级一线观看久| 国产精品国产自产高清AV| 一区二区三区黄色片a| 激情无码日韩| 免费看欧美美女黄色大片| 色优久久| 久久欧美1卡2卡3| 男人的天堂色偷偷青青草视频婷婷网| 亚洲天堂性爱| 久久只有精品一区二区三区| 日韩亚洲97| 四虎在线播放| 91丰满| 亚洲国产ⅴ高清在线观看| 欧美大香蕉专区网| 夜夜嗨一区二区| 亭亭丁香激情| 大乔未久88一区| 人妻91少妇| 熟妇乱伦一区二区| 6080YYY午夜理论片在线观看| 欧美日韩性爱无码| 吻戏激情性巴克| 久久精品一区| 死我十八禁| 91欧洲国产成人久久精品网站| 嗯啊视频免费在线观看| 天天做天天爱天天爽| 丰满精品人妻少妇久久字幕| 亚欧美色图| 中国AAAAAA黄色片| 亚洲乱码国产乱码精网站| 色一情一乱一乱一区91Av| 色噜噜人妻丝袜AV资源| 91模特在线观看| 你懂的在线观看区国产| 亚洲操逼视频网站| 麻豆区99999| 日韩精品99久久久久久中文字幕| 人妻少妇无码| 日日操免费视频| 色婷视频| 97精品国产精品免费观看| 99国产精品久久久久久久成人热| 欧美,日韩,中文,另类| 亚洲天堂五月天国产| 九九热九九| 九九免费影片| 樱花蜜乳av| 岛园激情| 91高潮喷水美女| 可以免费看黄片的视频| 99精品久久久久久久婷婷蜜桃| 国产美脚女优尤物在线观看| 九九热九九| 九九热精品在线| 色综合20p| 日韩av电影网站| 亚洲欧美999| 欧美顶级黄片AAAAA在线免费看| 蜜桃视频一区二区三区在线观看| 欧美综合777| 激情小说图片亚洲首页| 99热这里都是精品| 不卡一区视频| 日韩欧美亚洲自拍偷拍| 精品国产乱码久久久久久影片| 天天色综合影视网| 色综合久久88色综合久久天天| 精品一久久久| 人人 操人人 操人人| 18一区二区三区| 极品色| 成人婷婷丁香| 亚洲中文sv| 在线不卡视频| 青草伊人网| 久久久久久精品免费看A级| 天天激色| 日韩 欧美 另类 人妻| 麻豆天美国美国产| 网友自拍第1页| 91爱综合| 69视频入口| 丝袜制服字幕在线| 五月丁香黄色网| 国产60区。| 成人毛片免费| 久久av网| 欧美精品99久久久**| 怡红院成人av| 亚洲成人久久一区二区| 1024午夜激情男人的天堂| 边做饭边操逼逼| 国产精品久久久久久久久久久久久久久久| 级做a爱无码性色永久免费| 欧美 牲| 亚洲高清无码在线桃色| 日韩av情韩国爱禁区av一区二区| 大伊香蕉在线视频免费| 男人 天堂 日 亚洲| 欧美精品日韩久久久九| 国产少妇内射| 五月婷婷五月天| 襙一襙| 激情小说亚洲视频| 国产乱伦亚洲| 天天操天天7| 综合影院亚洲| 无码久久亚洲高清,| 99精品伊人| 91色婷婷综合久久中文字幕二区| 啊啊啊骚| 大香蕉手机在线视频| 欧美黄色片在线播放| AV色五月天| 中文字幕一区 二区三四五 区日 日骚 | 狠狠2050在线观看| 色女99一级片在线观看| 夜夜福利| 青青草精品| 亚洲 欧美 中文 日韩超碰| 一本一道vs波多野结衣| 家庭乱伦国产| 亚洲āv网址在线观看| 精品人妻一区二区三区四区| 国产精品不卡一区二区三区| 五月久久HDAV| 试看60秒| 日日骚网站| 一区二区 日韩 欧美 国产 传媒| 色呦呦呦在线观看视频| 欧美同性恋 的搜索结果 - 91n| 一起草AV| 放黄片放3级黄片没穿衣服| 久久神马影院| 久久久九九网站| 9精品久久久久| 久久啊啊啊视频| 天天综合网国产| 精品人妻一二三| 欧美色图在线视频少妇| 热天堂一区二区| 无码免费精品高清| 涩综合导航| 欧美美女视频| 人妻精品一区二区全免费| 激情久久久| 69少妇一区二区| 天天在线91| 日本最新免费韩国1区2区视频播放| 开心五月激情网| 久久亚洲中文字幕视频| 日韩电影中文字幕| 久干网| 凸凹视频在线观看| 国产一区自拍欧美日韩| 97爱综合| 操老熟女AV| 口爆欧美91| 操人妻丝袜高跟| 久久精品国产精品亚洲艾通辽熟妇 | 伊人97色天使| 91久久久久久| 亚洲第2页| 日韩人妻一二三区视频| 青青操网| 黄色av播放免不| 韩国女主播青草在线| 99爱久久视频频| 亚洲精品男人的天堂| www.狠狠操| 噜噜噜狠狠色综合| 欧美日韩香蕉| 日韩操逼HD| 精品人妻一区二区视频| 91青青草| 国产精选视频| 600国产精品视频| 久久精品区| 久久久精品九| 中文日韩欧美熟| 五月天欧美色图| 日影院久久婷婷夜夜网| 小草av不卡亚洲二区 | 97操| 欧美精品成人一区二区在线观看 | 亚洲双插| 好湿好紧视频| 超碰97伊人| 欧美国产操逼| 成人在线午夜视频一区| 五月天欧美色图| 校园春色 亚洲|