亚洲有码Av一区二区三区_国产高清啪啪免费视频_69色视频国产_国产成人人人爆出白浆_国产精品自在线拍国_一本久久伊人热热精品无码_午夜性刺激在线看免费带字幕_助力高品质欧美狂喷水_亚洲精品日韩无码_精品无码一区二区三区蜜臀_麻豆高清国产AV_熟妇人素无码中文字幕_亚洲a级片在线观看_国产欧美日韩三区_99国产成人高清在线观看

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| 亚洲无码 国产无码| 婷婷三区| 无码国产精品久久久久| 水多多映视AV| 综合97久久| 丰满欧美少妇| 伊人影院综合是一个与深夜成人在线| 91少妇人妻| 亚洲美女 晚间男人天堂 | 亚洲一区二区三区在线激情| 欧美在线色| 999狠狠综合| 国岛片视频| 99人妻| 加勒比综合a∨| 人妻激情另类| 五月天激情婷婷| 97精品熟女少妇一区| 九热中文字幕| 欧美草草高清日韩视频| 日日骚 av| 夜夜爽爽爽| 精品国产精品一区二区| 国产女人和拘做爰视频 | 国产亚洲日本精品在线| 国产精品久久久久久久久久久久久久吹| 97香蕉人人乳| 亚洲 欧美 中文 日韩超碰| 色哟哟511老熟女| 色吧5亚洲| 久久风骚城市人| 激情五月天综合网| 久久久久国产精品片区无码直播| 日韩电影在线观看网址| 精品人妻少妇| julia ann久久| 欧美天堂超碰97| 啊a一区在线| 日本道久久综合色色| 日本国产亚洲一区在线观看| 好属操| 青青操在线视频| 国模91| 亚洲一本色码中文字幕| 熟妇一区二区三区| 在线 亚洲 网爆 自拍| 超碰人人妻| 操逼网站地址| 亚洲操逼无码| 91精品国产高清久久久久久,亚洲成人| 欧美偷拍区| 一级性爱网| 亚洲人天堂| 久久久偷拍| 国产蜜臀精品一区二区尤物| 久久网亚洲| 内射中国少妇高清视频免费视频 | 欧美人妻久久精品二区三区| 在线无码操| 国产日韩欧美中文在线播放 | 亚洲有薄码区日本系列中文字幕| www.99视频| 国产亚洲精品第一最新| 嫩呦国产一区二区三区AV| 日韩免费在线观看不卡| 日韩性爱一级片| 超碰97丝袜| 亚洲美女精品九九视频| 国产91美女视频| 伊人网在线点播| 伊人991| 妇女视频网站| 久久视频少妇美女| 欧美夜色| 日韩欧美中文字| 久久草视频污视频| 玖玖草久草99蜜月一区二区三区| 亚洲清纯唯美| 久久精品无码熟妇一区二区三区视频导航| nuu12国产麻豆精品| 2019亚洲男人天堂| 97精品一区| 亚州高清AV| 伊人网高清| 日本精品五区| 欧美人与动性人交a| 3PAV乱伦视频| 一级性爱视频免费观看 | 无遮挡又黄又刺激的视频| 天天视频黄| 91搞逼视频| 一区二区三区黄片免费观看| 国产精品无码在线| 色99在线| 99热这里只有精| 超碰午夜在线| 日日骚精品视频| 大香蕉宅男伊人| 99re不伦| 久久久久久久久久久久久女过产乱-少妇高潮一区二区三区喷水-成人AV | 桃花色综合影院| 天天草夜夜草高潮片| 蜜乳AV一区| 首页中文字幕中文字幕免费| 国产亚洲99久久精品| 午夜天堂啪啪| 成人熟女视频一区二区三区| 亚洲欧美日韩国产丝袜自拍中文| 亚洲精品蜜桃久久久| 亚州性色| 欧美人妻少妇| 韩日性爱av| 人人妻人人狠人人| 亚洲天堂区| 欧插网站| 日本中文字幕熟妇| 婷婷色香伊人| 午夜福利一区二区影院| 在线看片国产精品每日更新| 亚洲精品毛片在线观看| 中文字幕成人| 第四色亚洲色图| 亚洲天天影视色综合| 欧亚韩国999| 综合色好色| 欧美激情另类一区二区| 五月天激情网图片| 亚洲情色综合网| 91丝袜视频在线观看| 最新无码国产| · —级AA伦aa坐爱午夜极速ⅴA一区天天噪天天噪天天噪 | 色综和网| 亚洲精品91| 中文字幕日韩电影人妻| 激情四射五月天| 欧美爆操91| 伊人久久亚洲色欲综合网站| 懂色Av| 午夜无码精品免费看性色| 嗯啊不要在线| 在线中文AV| 色99999| 强奸乱伦Av网| 久九九九九九九热| 91久热| 天天看精品动漫视频一区| ?亚洲伊人伊成久久人综合网| 久久超碰爱| 天天摸天天舔天天操| 大香蕉综合网| 成人性爱高清视频免费看| 97视频在线免费看| 日产精品久久久一区二区| 91性高朝久久久久久久久| 动漫爆乳3D奶水一区在线观看| 中文字日本乱码| 婷婷20月天青娱乐| 亚洲日韩精品一区视频在线| 亚洲人在线| 99热欧美| 唐山老熟妇露脸啪啪叫| 中文字幕乱碼在线| 天天做天天爱| 女人双腿搬开让男人桶| 久久久久ab| 欧州91高潮| 国产精品制服丝袜清纯唯美| 韩日精品四区| 久久蜜桃一区二区| 成人5码视频| 男人的天堂在线2| 久久这里只精品| 404操逼福利视频| 久久最新视频免费观看| 久久久精品中文字幕爱豆| 综合网色| 亚洲在线观看| 欧美大香蕉专区网| 97公开久久| 日本熟妇浓毛hdsex| 爱我干综合| 97欧美色综合| 九九久久一区二区伦理| 91AV天堂| 国产极品精品美女视频| 九一综合精品视品av| 蜜臀AV午夜精品久| 久久久久久亚洲精品不卡人乳 | 97超碰碰碰| 亚洲精品国产拍免费91在线| 国产女性无套 免费观看| 怡红院成人av| 亚洲成人性爱网站在线播放| 探花精品视频| 牛牛久久国产精品视频一二三| 三上悠亚在线毛片91| 婷婷色导航| 嗯嗯啊啊啊啊轻点视频| 老子午夜伦不卡影院| 国产传媒1234区| 骚货操死你| 国产深喉视频一区二区| 操操操五月天婷婷丁香影院| 自拍六区| 中国操逼无码| 青青草视频在线观看一区二区| 东京热双插| 人妻啊啊人妻啊| 久久久久久久久久久999| 亚洲精品日韩国产欧美| 男同专区一区二区三区在线| 3028国产精品| 粉嫩av在线一区二区| 吉川爱美亚洲二区在线| 超碰国产精品久| 免费网色网站| www.99中文字幕| 九区国产| 久久九九国产精品| 少妇人妻在线| 亚洲综合激情五月久久| 天天综合网在线观看| 欧美日韩性爱视屏免费看了| 大香蕉中文在线| 亚欧精品久久久久久久久久久| 日韩不卡网操逼中文字幕日韩| 嗯啊视频免费在线观看| 中亚黄色三级大片| 免费观看国产小粉嫩喷水精品午| 九九九精品一区二区无码| 人人操,人人液| 青青青操| 人人操人人插人人摸人人干| 男人的天堂三级| 日韩中文欧美| 久久国产在线一区二区| 亚洲精品蜜桃久久久久久久| 久久免费精品视频免一| 亚州综合网| 亚洲精品天天影视综合网 | 亚欧免费| 青青草影视蜜久久| 91九久| 日本人妻伦在线中文字幕| 97欧美日韩中文| 国产成人一级av88| 午夜福利合集| 九九热九九热| 国产一区二区三区白丝| 精品国产乱码久久久久久日本公司| av九九| 国产91亚洲精品一区二区三区| 中文字幕片| 99老司机精品视频在线观看| 日本 情色 1区| 日本三级小说中文字幕| 免费看黄视频亚洲网站| 综合色欧美| 亚洲人精品久久久喷水| 日韩av一级黄片| 夜夜爽夜夜| 成人一区二区三区四区| 大香蕉啪啪啪| 日韩熟女操逼| 日日骚一区二区三区| 欧美色图片91| 人、人、摸,人、人、草| henhen91| 伊人991| 97操操| 一级AAA片一区二区三区| 黑丝91视频| 乱伦日本色图AⅤ| 精品午夜福利| 色婷婷在线视频精品导航| 人妻精品一区二区在线| 国产在线观看一区二区三区| 91青青在线视频| 美腿色图| 九t超碰| 99精品成人免费看| 亚洲无码com| 欧美在线|亚洲| 色女网日韩| 日本在线播放不卡一区| 中国AAAAAA黄色片| 殴美性天天| 加勒比av中文| 熟妇人妻一区二区三区| 色香色欲天天综合网天天来吧| 色噜噜国产精品视频一区二区| 欧美性爱一区| 欧美日韩夜夜| 黄色一级视| 日本性交操一区二区不卡系列| 蜜臀久久99精品久久久久久成人小说 | heyZO天然素人无码AⅤ专区| 国产sv美女内射| 少妇色综合| 伊人久久青青草| 亚洲天堂7777| 国产中出内射一区二区| 亚洲国产综合图区中文字幕| 中文精品少妇天堂| 日本好吊色视频| av情色影音| 免费视频a级毛片免费视频| 亚洲男人综合| 亚洲加勒比| 国产在线激情| 亚洲欧美综合网| 日韩综合97P| 精品美女在线视频| 九九久久久九九| 五月天婷婷成人网| 亚洲一区日韩| 中国一区二区亚洲人妻| 国产欧美日本亚洲精品| 97超级久久| 欧美在线综合| 精品免费国产二区三区 | 偷拍导航视频网站| 天操天操夜操夜月月年年操操| 日日夜夜青青草母狗| 国产人妻精品久久久一区二区三区 | 欧美性爱一内片一区二区三区| 香蕉综合网| 中文字幕91页| 色色色色日本| 色色色色日本| 草草网站影院白丝内射| 秋霞影音一区二区三区| www.大香| 日本免费专区| 亚洲AV无码黄色强奸| 性爱Av免费| 日本国产欧美一区三区二区| 午夜美女福利视频| av亚欧| 91美女网站| 91 丝袜在线播放| 久久精品无码熟妇一区二区三区视频导航 | 九九九久久久| 日韩一级二级三级在线不卡观看完整| 国产精品午夜精品| 久久久∴| 中 文字幕一区二区三四 五 区日 日 骚| 欧洲综合视频| 日韩影片中文字幕一区二区三区| 精品国产一区二区久久| 宗合情欲网| 美女主播色欲91抠b在线播放| 熟啊v色欧美热| 97超碰色屌| 91黑丝美女| 欧美熟妇亚洲版| 精国久久一区二区三区98| 试看60秒| 少妇激情一区二区三区视频| 欧美高清第一页| 94色色电影网| 另类图片欧美激情综合| 天天操夜夜操| 免费AV中文网在线观看| 欧美日韩大黄片| 色黄色美女大长腿午夜视频| 国产精品视频白浆免费| 99热综合| 精品一区二区啪啪啪| 97视频在线观看播放与子乱对白在线……| 一区二区精品更新提醒| 中文久久96| 亚洲清纯综合| 亚洲精品国产精品成人| 加勒比伊人| 欧美三级中文字幕hd| 中文字幕视频2区| 91成人无码| 精品久久久久久亚洲| 嗯嗯嗯嗯啊啊啊好紧好大| 精品.99999| 天天综合香 ld视频| 久操在97| 国产美女自拍视频| 在线播放成人高清免费视频| 太久视频| 天天舔天天 | 久久久男人的天堂| 国产精品无码AV网站| 欧美在线官网| 中文字幕一二三| 亚洲色图 欧美热图 清纯唯美 另类自拍 | 欧美日韩在线小说| 欧美色院| 伊人久久大香线蕉无码| 国产精品交换一区二区| 美女尤物福利视频| 在线情色电影 91大| 精品人妻一区二区三区四区| a片在线播放| 欧美,日韩综合久久| 91丨九色丨国产打屁股| 久妇网| 婷婷五月天久久精品视频一区二区三区 | 五月天偷拍| 91日日| 天天干夜夜| 91综合色噜噜| 日韩中文字幕视频在线观看| 屌逼麻豆| 亚精品无码毛片一区二区三区| 欧美日韩人妻精品一区二区三区| 一级做受视频免费是看美女| 天天操天天舔| 麻豆天美电影一区二区| 美性中文综合网| 神马久久久久久久久| 手机看片91人妻| 精品九九国产无码| 欧洲天天在线| 久久久久久久久久久精| 17c在线成人免费A片观看| 亚洲成人美女无吗| 国产精品天美传媒| 国产精品久久久午夜夜伦鲁鲁| 丁香婷婷五月| av一区二区三区 中文| 国产老熟女| 亚洲猛交| 色伊人91| 欧美超碰9798| 抽插一区二区视频| 久久九九视频九九视频| 亚洲人在线| 欧美大干日韩| 午夜视频久久久久一区| 亚洲色图超碰在线| 骚鸭AV| 中国AAAAAA黄色片| 超碰91在线| 亚洲欧洲无码一区夜| 日本精品一级二级三级| 青青草日韩无码| 亚洲十八禁止| 国产一进一出视频网站| 亚州情色j区| 亚洲精品97p| 国产高清无码一区三区二区| 91在线限制级| 曰韩中文人妻视频| 97电影院超碰| 97欧美资源| 人人射人人操人人摸| 一二三啪啪专区| 亚洲人妻五月丁香婷婷| 蜜乳AV色欲AVAV无码| 麻豆 欧美 日韩| 九九九九AV| 综合一区中亚洲国产成人综合精品| 人妻密肉在线观看| 国产成人在线观看网址| 综合影院亚洲| 97综合激情| 丁香九月激情啪| 在线五区| 九月丁香综合网| 91新在线欧美| 国产精品嫩草影院午夜两性| 午夜成人福利影视| 国产中出内射一区二区| 九九色逼| 丝袜视频网国产90| 女同性恋久久| 毛片99-全集电影手机免费观看完整-B029AV | 亚洲文学偷乱拍啪啪啪啪| 麻花豆传媒剧国产MV出差| 亚洲天堂性爱| 在线免费观看高清无码视频| 无码又爽又硬又激情免费视频| 久久有码视频| 亚洲色综合| 校园春色 亚洲| 日韩一级片| 高清无码91| 久久女婷| 乱伦a片视频| 婷婷干黄色| 亚洲性刺激| 激激五月| 99热国产| 亚洲天堂另类小说男人| 欧美最婬乱婬爆婬性视频 | 国产亚州精品美女久久久免费| 岛园激情| 97香蕉网| 男人的天堂无码| 欧洲站一级二级三级h| 丁香婷婷五月| 中日韩久久久| 任我爽在线视频免费观看| 日韩久久艹| 亚洲?V无码专区在线电影| 试看福利| 强奸国产精品视频| 超碰日韩美妻| 岛国成人av在线播放网址| 九九九九一区| 久久女婷| 蜜臀无码视频在线观看| a人欧美综合天堂麻豆| 香蕉久久AⅤ...| 免费99精品国产自在在线| 日本熟女中文| 91天天看| 久久草视频污视频| 日本污ww视频网站| 爱爱动态60秒| 人妻熟女一区二区三区在线| 欧美一区二区观看在线| 91成人精品| 久久精品免费| 亚洲日韩美国人妻| 97在线视频免费看| 思思99热| 中文字幕AV乱伦| 嗯嗯嗯,草死我| 懂色天天爱天天日天天射天天澡| 999九九九九国产动| 五月婷婷丁香| 国产精品爱欲| 亚洲中文字幕av| AND人妻系列| 中文色综合| 色香欲天天天天综合色| 亚洲激情网| 国产亚洲色停停久久99精品91| 亚州色图片在线色| 丁香五月成人| 日韩精品中文字幕人妻| 好爽要喷了| 欧美中文字幕男人天堂久久精品 | 2017av无码免费无线播| 四虎视频在线观看| 抽插无码高清一区| 免费精品国偷自产在线在线| 超碰在线1234区| 东北黄色电影| 国产精品自在自拍视频| 久久大黄片| 久久原创中文| 无码一区二区三区四区五区六区七区八区九区十区视频 | 加勒比综合88| 翔田千里AV无码秘 三区| 五月天综合在线| 亚洲综合在线高清| 欧美亚洲涩涩| 午夜精品久久99蜜桃的功能章节 | 91黑丝操| 97精品国产97久久久久久| 大地资源在线观看中文第二页| 淫妻综合网| 精品一区二区三区蜜桃臀www| 一级aaaaa欧美中文字幕录像片| 91美女视屏| 国产诱惑| 亚洲欧美中日韩| av片在线观看免费播放| 91视频伊人| 九九九一二三| 国产免费一区| 97超碰色屌| 麻豆国产尤物AV| 最新中文字幕在线亚洲| 黄色成人网久久久久久| 香蕉精品二区二区| 青青草久草AV| 人妻无码后入| 九九在线精品| 国产97视频免费观看| 男插女青青影院| 蜜桃视频啊啊啊啊| 日日黄色三级网站| 人人澡人人爽人人精品| 99啪啪| 国产 热久久久久国产精品| 日日爱99| 黄色工厂这里只有精品| 蜜臀一二三区| 国产一区二区三区,在线观看观看| 激情99| 日本在线激情一区二区三区 | 伊人激情五月天一区二区| 日本淫乱女一区二区三区视频| 日韩一999精品| 免费观看的av| 强奸乱亚洲| 久久久久久国产手机AV| 免费的黄片有限公司| 超碰78| 日骚逼视频| 欧美九九九| 2020中文字幕在线| 天欧美在线| 久久久久78| 日韩99神马视频播放| www鬼畜国产男人的天堂| 伊人91| 中文字幕123| 欧美日本中字另类在线| 国产精品毛片?v一区二区三区| 日本操逼视频在线| 亚洲色图图片| 校园春色五月天| 熟女精品日韩一区二区三区 | 欧美性爱另类综合| 亚洲精品无码少妇久久| A片三级无码| 精品伊人久久久大香线蕉小说| 亚洲欧洲精品视频发布| 岛国片国产成人亚洲播放| 看免费一级在线播放毛片| 91欧洲国产成人久久精品网站| 97干97色| 国产精品视频内谢女人| 91社区伊人| 中文字幕一区二区视频在线观看| 国产精品ww久久| 亚洲无线观看久久| 在线人成亚洲视频免费观看| 日本性交操一区二区不卡系列| 91国产操逼视频| 亚洲欧美人妻| 一级做a爰片性色毛片久久| 欧美亚洲国产91在线| 交换娇妻呻吟声不停中文字幕| av最新免费中文字幕| 精品人妻一区| 91在线无码精品秘 软件| 日本3级一区二区免费| 九月丁香| 久久天天摸| 91欧美偷拍| 亚洲 欧美 另类 日韩 人妻一区| 日本九九久久99| 粉嫩久久久极品| 校园春色欧美| 亚洲第一页色网| 免费国产视频| 在线中文字幕| 欧美少妇性爱网站| 亚洲aV无码成人在线观看| 成人乱人伦一区二区| 精品九九国产无码| 欧美色性爱| 99久久久er直播网址| 亚洲av影音先锋| 色综合久久88色综合久久天天| 日韩乱伦视频| 婷色五月| 炮色五月| 懂色av色欲av蜜臀av| 精品国产乱码久久久久久久久久毛片 | AV色图| 女同性恋中文字幕| 亚洲熟女人妻中文字幕一区二区| 亚洲无992tv| 大香蕉视频一二三区| 国产亚州精品美女久久久免费| 婷婷五月综合在线| 少妇毛片久久| 2019午夜福利视频| 欧美激情在线观看视频| 无遮挡又黄又刺激的视频| 久久精品国产亚洲AV嘿嘿| 久久亚洲婷婷| 久久久艹艹艹| 99re在线视频国产| 国产传媒一区二区三区| 飘花国产午夜精品不卡| 免费看久久久性性| 无码日韩网站| 欧美日韩人人精品| 97jingpin| 天天肏天天干| 精品人妻一区| 伊人影院中文字幕| 任你干在线视频| 精品黄色电影| 中文字幕丝袜国产第一页不卡| 亚洲1区| 蜜桃精品一区二区三区ww| 中文字幕伊人| 日韩免费a级毛片无码a∨| 婷婷丁香五月天亚洲天堂网| 麻豆天美国美国产| 日韩色女精品| 日韩猛交| 综合久久六月久久婷婷| 99国内精品| 国产精品粉嫩福利在线| 日韩欧美亚洲自拍偷拍| 欧美疯狂做爰xxxx| 乱码熟妇人妻久久久| 色婷婷一区二区三区久久午夜| 欧美日本成人一区二区| 日韩去日本高清在| 欧美激情片一区二区| 欧美综合1性辶| 黄色AAAAA欧美| 99热97| 欧美在线大香999| 嗯啊视频免费在线观看| 欧美三级不卡| 午夜经典| 欧美人妻久久精品二区三区| 一本正道久久熟女| 超碰99在线| 大学生美女口爆| 高清无码国产亚洲| 无码久| 国产精品国产精品国产| 影音先锋中文字幕日本好一区二区| 欧美精品在线观看| 欧美性高潮在线| 国精精品无码一二三区水多多| 一个人在线看的黄色电影网站| 综合性视频99| 天天草夜夜草高潮片| 偷拍 亚洲| 好湿好紧视频| 少妇无码av专区线| 欧美九九99久久精品| 欧美色性情| 日韩人妻一区二区精品| 亚洲91网站| 91在线精品一区二区三区| www久久99| 欧美日本不卡| 国语对白露脸XXXXXX| 天天日少妇逼AV| 干妹子| 97人人操人人摸| 欧美人妻二区三区| 97天堂| 无码伊人久久大杳蕉中文无码| 激情文学欧美| 插入逼91| 久久久影院| 大香蕉综合网| 国产 日韩 欧美 人妻 熟女 中文| 中文熟女五十乱码在线| 国产最新小视频在线播放下载| 射丝袜高跟鞋99| 中文字幕三四区| 色色色色电影网| 丰满欧美放荡少妇在线| 国产精品久久久久久 百度| 蜜臀亚洲综合一二三四区| 中文字幕日韩精品久久| 一区二区三区日韩欧美| 17c嫩草51久久91嫩草| 懂色AV一区二区三区| 99热销国产这里有精品| www超碰| 免费视频观看60秒| 岛国激情视频在线观看| 亚州综合AⅤ| 人妻中文字幕精品无码| 天天插夜夜爽| 一级aaaaa欧美中文字幕录像片| 免费看污网址| 大香蕉久| 综合性视频99| 亚洲AV永久无码一区仙野| 91欧洲入口| 久久激情视频| 四虎精品一区二区| 日韩久久三区| 久久久一区二区三区四区五区| 久久久久成人蜜桃精品| 91啪啪| 久久这里精品国产99丫e6| 国产400孕妇孕交群| 欧美熟妇视频| 黄色免费一级在线毛片| 久久色激情一区二区三区| 国产精品久久久吖| 狠狠干综合| 色欧洲97| 久久久久9| 青青草好吊色| 九九精品美女高溯喷水| 久久夜夜| www.99热在线只有精品| 亚洲中文一区二区三区| 伊人久久蜜月| 日本理论在线| 亚洲欧美黄| 香一区二区三区| 午夜无遮挡男女啪啪视频| 无码男人天堂| 日韩性爱高清免费视频| 蜜臀AV午夜精品久| 午夜久久一区二区无码中出| 777琪琪午夜免费A片| 2019亚洲男人天堂| 色久综合| 自拍偷拍 日韩欧美| caopeng97人妻| 精品中文字幕一区二区| 久久日本熟女精品一区| 一区二区三区精品视频| 婷婷久月| 日韩 成人 有码| 韩国一级婬片A片AAAAA| 97在线观看免费视频| 裸体女人草逼视频播放一区,二区,三区,四区,五区| 五月丁香六月综合缴清无码 | 日日干夜夜欢| 色播五月丁香| 中文字幕成人乱码熟女精品国50 | 国产一区二区a毛片| 蜜桃臀av一区二区| 男人天堂站| 日本中文熟女视频| 日韩综合97P| 人人透人人操| av毛片aaaaa免费看| 日韩人妻丝袜美腿中文| 无码国产精品久久久久| 欧美日韩制服| 激情文学欧美| 偷拍三区| 大粗鳼巴久久久久| 国产久久日韩网站导航| 老司机深夜影院18未满| 床戏久久久av一区二区麻豆| 中文字幕视频2区| 妇女性内射冈站HDWWWCOM| 中文字幕无码不卡啪啪| 欧洲射精91| 人妻99p| www久久国产精品| 欧美最婬乱婬爆婬牲视频| 99精品热| 中文日本免费高清| 久久系列| 青青操视频在线| 99国内精品| 能直接看AV的网站| www久久国产精品| 欧美图片校园春色| 国产精品网站免费| 性爱视频久久| 国产精品久久久久中文字幕| 内射黑丝袜| 日本人妻A片成人免费看片| 欧洲亚洲国产综合在线| 综合色欧美| 成人欧美日超碰| 色五月婷婷在线| 日韩有码 一区二区三区| 国产精品伦理| 中文字幕人乱码中文字的预防方法 | 日韩人妻 中文字幕| 亚洲熟妇一,二,三期| 男人天堂无码| 亚洲 欧美 另类 日韩 人妻一区| 夜夜嗨一区二区| 97任你吞精| 性爱视频啪啪啪啪| 操东北女人| 久久夜精品一区二区三区| 久久久99久9| 99久久精品欧美国产| 色97干| 亚洲AV色图一区| 亚洲少妇激情视频| 亚洲精品久| 日韩成人精品视频自拍| 秋霞操逼片| 熟女人妻一区二区三区| 亚洲做性| 一级黄碟| 日本久久综合| 国产一区二区三区中文字幕| 午夜男人一级A片7777| 操逼国产免费| 一级成人性爱| 黑人综合网| 女生看匆91网站| 亚洲天堂少妇| 人妻丝袜肏逼| 国产日韩人人| 色色五月婷婷| 亚洲欧洲网站免费观看| 日韩人妻 中文字幕| 啪啪视频亚洲第一| 国产精品分类在线观看| 91久久青青草原精品| 日韩欧美女求操每天更新| 人人九九精| 欧美91久久久久| 九X超碰| 白丝1区2区3区| 男人的天堂2018东京热啪啪啪| 五月天激情小说| 大香蕉综合在线| 色综合尤物| 日本精品第一视频在'| 欧美日韩 强奸乱伦| 亚洲性爱免费电影| 高清国产精品无码| 黑人猛交| 国产主播福利| 另类图片欧美激情综合| 17c嫩草51久久91嫩草| 国产精品操| 亚洲 在线| 啊啊啊啊啊啊在线| 蜜臀久久99精品久久久久久婷婷 | 久久久久日本视| 五月丁香六月| 亚洲.欧美.丝袜.中文.综合| 国产精品老师| 91精品久久久久久77777| 欧美在线播放aaaa| 亚洲国产日韩欧美熟妇在线| 把腿张开老子CAO烂你| 尤物网址| 日韩无码三级影院| 中国一级特黄大片护士| 思思热国产在线视频| 黄骗免费| 亚洲综合精品国产一区| 999岛国大片| 五月丁香拍拍激情综合三级| 亚洲乱码国产乱码精网站| 97免费在线视频| 96久久久| 中文操逼字幕| 五码视频在线观看| ..日韩av毛片精品久久久| 一区二区三区黄片免费观看| 国产亚洲美日韩Aⅴ中文字幕无码成人| 2019久久久久久久久福利| 人人人人插| 人妻日日干| 亚洲1区| 花野真衣| 综合激情97| 中文字幕日韩人妻视频一区二区三区交换夫妻 | 日本东京热加勒比久久| 另类 日韩 熟女| 国产免费永久精品无码| 亚洲老熟妇xxx| 五月丁香六月婷| 天美传媒av 在线| 操香逼| 久久夜精品一区二区三区| 日韩射图| 亚洲av青草久久一区二区| 天天夜躁日日躁狠狠2002| 色天使亚洲综合在线观看| 狠狠色噜噜狠狠狠狠狠色综合久久| 欧美刺激色黄片免费看| 欧洲色色| 天天综合影院91| 亚洲精品久久一区二区三区蜜桃臀| 激情人妻另类| 亚洲天天更新| 婷婷在线视频在线观看| 强奸乱伦大香蕉网| 人妻少妇色综合| 中文有码第五页| 久久高清无码夜夜操| 亚洲美女精品九九视频| 性饥渴少妇av无码毛片| 久久精品国产亚洲AV无码电影| 狠狠狠一区二区三区| 91操人| 日本无码1| 另类亚洲一区二区三区| 日韩熟女视频二区| 天天日天天射天天干| 性爱久久| 日韩AV电影网站| 欧亚性爱啪啪| 久久久久一本一区二区青青蜜月| 97舔舔| 乱理日韩中文| 中文无线日韩一区| 亚洲色图图片| 91人妻精华帖| 国产精品久久久久无码AV会牛| 国产伊人自拍| 蜜桃一区二区三区| 91亚洲影视| 国内偷自视频区视频综合| 99热精品在线播放| 亚洲精品欧洲精品| 久9综合在线| 热思思免费视频| www.色婷婷色综合| 中文久久一区| 天美传媒精品久久视频| 韩日色费| 丁香五月综合| 亚洲精品 欧美精品| 日本加勒比无码专区| 欧美激情性爱视频网站| 96精品在线| 国产99999久久精品| 亚洲97综| 国产中文精品一区二区在线观看| 伊色综合天堂色97| 久久久一区二区| 日韩性爱一级片| 国产高潮AA片免费看| 免费久久9999| 东北熟女91| 亚洲欧综合另类无码一区| 激情久久久| 97丝袜亚洲在线播放| 综合久久97| 2018色综合天天操| 亚洲色图欧美色图制服诱惑| 超碰色综合| 无码少妇精品一区二区60岁老人| 四虎免费看黄| 操逼操逼操| 五月丁香婷婷综合| 涩涩久久精品| 啊啊啊好多水| 久久婷婷五月综合| 99精品网站| 超碰在线一区二区| 免费观看啪视频| 中文字幕、久久精品国产2020、久久综合久久自在自线精品自、亚洲 | 色一情一乱一乱一区91Av| 91n免费处女| 久久性爱视频99| 国内三级自拍小视频在线观看| 亚洲熟妇乱女区二区三区| 99少妇内射| 91精品国产日韩欧美综合| 男人的天堂.com| 夜夜久久久| 被体育老师抱着c到高潮| 日本欧美色| 日本成人免费一区二区三区| 亚州精品一区二区三区香中文字幕在线| 夜夜高潮夜夜爽国产伦精品| 韩国一级AAA| 青青操97| 日本韩高清无砖码22o| 婷婷色色网| 亚洲丝袜二区在线| 国产激情片在线观看| 亭亭在线资源| 亚洲蜜乳av| 97综合日韩| 麻豆三极片| 亚洲色人妻综合| 久久精品国产97欧美精品亚洲| 午夜精品五区| 欧美成人一区二区| 国产精品一区av在线| 亚洲人妻熟妇三十三区| 天天射天天操天天干天天吃2018| 91爱综合| 欧美日韩1234| 五月婷在线| 人妻第一页| 五月丁香影院| 天美传媒av在线| 亚洲制服aⅴ中文字幕| 久操大香蕉超碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰 | 色色热| 9ⅰ久久久天天| 首页中文字幕中文字幕免费| 国产精品午夜福利视频| 国产不卡免费在线视频| 伊人aaa| 亚洲精品无码成人久久久99| 欧美少妇色综合| 99精品欧美一区二区三区桃色| 久久国产精品熟女人妻| 久久久久人妻二区精品叶可怜| 啊啊啊好舒服好爽啊啊啊视频| 岛国1区2区3区在线观看| 久久av色| 操逼片国产| 老熟妇一区二区三区啪啪| 综合欧美激情网| 婷婷五月天色网| 竹菊影视国产一区二区| 欧洲色综合| 97WW精品| 色色毛片| 精品九九九九九九九| 免费伦费视频在线观看| 九九亚洲色在线观看| 亚洲AV无码成人精品久久| 黄站在线免费观看| www超碰| 亚洲黑人在线| 综合国产97| 色婷婷六月丁香七月婷婷| 欧美国产一区二区三区麻豆传媒| 欧美色视频在线| 久久9精品网站| 欧美精品99久久久| 天美精品原创av片国产| 欧美老妇女内射网址| 中文字幕日韩人妻视频一区二区三区| AV色五月天| 婷婷色中文字幕| 日日夜夜精品视频| 91亚洲欧美色图| 免费作爱一级视频| 少妇色欲综合网2| 99综合网| 色欲Av人妻精品一区二| 久久久久久久久久久久久女过产乱-少妇高潮一区二区三区喷水-成人AV | 超AV色女| 青青草中文字幕| 美女尤物福利视频| 亚洲男人天堂2017| 超碰97在线 欧美 国产| 激情抓乳插进去啪啪啪日韩| 美女丝袜激情小说| 大香蕉啪啪啪| 日韩亚洲欧美中文字幕| 大吊色| 女人喷水视频在线观看| 五十路成人在线视频二区三区| 日本大片日本一区二区免费高清| 狠狠操使劲操| 久久久久久久久久黄色网| 日韩少妇一区二区三区| 97欧美综合| 99re只有精品| 91黑人无码激情在线| 日本布卡一区二三区| 97人人草| 岛国片在线视频网站| 国产精品天干天干综合网麻豆| 嫩呦国产一区二区三区AV| 蜜臀va69| www.四虎在线| 高清国产精品无码| 精品高清牛人盗摄一区二区三区中文字幕A片免费在线观看 | 精品国产一区探花在线观看| 日日日大屁股骚女人精品| 日韩另类色图| 2019久久久久久久久福利| 色99久草| 台湾肥佬网一区二区三区|