日韩精品一区二区三区在线视频放-无码中文字幕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
返回資訊列表
久久综合久久综合人久久夜精品| 亚洲综合在线第一页| aaaa少妇高潮大片| 密乳无码| 日韩激情无码影院| 欧美中出| 男人天堂导航| 黑人综合色| 密臀AV在线| 99热色精品| 日本十八禁免费看污网站| 欧美综合色图网| 日本不卡二三区| 久久一二区四| 91麻豆天美国产欧美日| 超碰狠狠操| 国产激情在线| 男人a天堂手机在线版| 国产在线视频午夜精华在| 中日韩久久久免费看| 91激情网| 91欧美丝袜| 午夜后入| 亚洲色棕合| 精品无码一区二区三区| 99国内熟女露脸视频| 人妻插插人妻人| 亚洲欧美国产日本一区二区三区| www.色婷婷| www.激情| 操久久久久久| 亚洲成人一二三区| 亚洲日韩青青草色月| 日韩传媒在线| 日本阿v天堂在线观看| 精品午夜福利| 99热在线播放| 精品九九| 99久久久无码精品国产人| 成年人网站在线免费观看| 97精品免费| 午夜美女福利视频| 色在线亚洲视频www| 国产av强奸美女| av日韩国产一区二区| 人人 操人人 操人人| 摸奶性爱视频网站在线免费播放| 国模不卡| 亚洲18禁| 黄站在线免费观看| 亚洲欧美在线丝袜| 国产一区二区精品久久99| 天天激情干| 性爱免费视频成人| 99日精品欧美国产| 精品精品精品| 少妇人妻激情四射| 91亚洲综合在线| 午夜男女爽爽大片免费观看| 色综合色欲色综合色综合色综合| 五月天综合网| 岛国AV一区二区电影| 九九十八精品| 四虎免费在线播放| 性久久久| 婷婷伊人綜合中文字幕| 97jingpin| 久久精品无码专区| 国产欧美一级在线观看| 开心五月天激情网| 无码操逼天堂| 久久91| www.99中文字幕| 人人摸人人干人人拍97| 女同亚洲欧美一二三区久久电影| 欧美韩国你懂得在线 | 777奇米影视777四色| 99这里只有精品| 丝袜无码a片| 综合亚州欧美| 立川理惠无码一区二区| 东京热熟女亚洲视频网站| 精品国产乱码久久久久久久久久毛片 | 色噜噜狠狠色综无码久久合欧美| 91天堂色男人的天堂| 欧美日韩国产中文超碰| 影音资源男人日韩| 天堂а√在线最新版在线 | 日曰骚久久精品| 东北少妇高潮zzzz| 农村妇女一级二级三级视频| 精品久久艹| 国产久久成人| 91亚洲不卡一区| 亚洲干B| 2019天天干天天操| 国产一区麻豆免费观看| 丰满人妻一区二区三区免费| 国产成人自拍视频在线| 人妻少妇久久中文| 人妻 中文 日韩| 一区二区三区网站日日骚| 亚州,欧美在线| 久久成人午夜精品影院| 大肉棒导航| 日韩三级伦理中文字幕| 97色伦欧美| 超碰导航97| 欧美视频在线视频免费va| 国产久久日| 国产精品白丝在线播放| 淫色网综合| 老熟妇91| 日韩精品.久久精品.AV女优.天美传媒| 天天超级碰碰碰| 亚欧高清| 久操在97| 国产69精品久久久久99尤物| 欧美手机在线综合| 狠狠干狠狠色| 偷拍精品一区二区三区| 江都AV在线| 热思思免费视频| 成人女人国产| 久精品无码av一区二免费国产在线观看| 免费网色网站| 亚洲一级特黄大片在线播放91| 丝袜亚洲91| 国产精品久久久久久久毛片1| 1区2区3区中文字幕日韩| 国产精品直播在线观看直播| 亚洲女人毛茸茸91| 性欧美体内射精| 欧美激情性爱视频网站| 欧美人黑A片无码免视费| 欧美色图私拍91| 久久亚州精品成人Av无| 91精品人妻啪啪间| 大香蕉丝袜一级片| 激情五月天中文字幕色| 久久精品老司| 婷婷五月天av| 殴美大黄片| 久草这里只有精品 | 国产久久久| 日韩二级| 日韩AC| 午夜舔阴达高潮视频免费看| 精品中文一区二区| 青青草伊人久久| 久久社区一区二区三区| 91色欧美| 久久久久78| 色五月综合| 国产精品一区二区a| 青青草色插素人| 亚洲成a人在线观看久| 亚洲高清欧美总合| 国产精品久久久久久久免牛肉蒲团| 欧美性巨大╳╳╳╳╳高跟鞋| 国产综合久久久麻桃个| 亚洲青青草| 五月色综合| 欧美18 在线观看| 中文字幕第二页| 人妻精品综合中文字幕在线 | 女性喷水高潮在线观看| 中文字幕一区二区三区四五区| 色欧美天天| 国产极品99热在线播放69| 精品少妇高潮久久| 久久大线蕉一区| 丁香六月婷婷久久综合| 国产伦精品一区二区三区在线观| 一本久道在线综合视频| 欧美影院一区二区三区| 天堂av最新电影网| 91美女看B| 第四色亚洲色图| 婷婷99狠狠躁天天躁| 亚洲精品影视老司机| 91亚洲在线| 四虎884| 偷拍片久久| 亚洲伊人久久精品狠狠在线| 人人人人人人少妇| 伊人五月天| 操逼不卡中文字幕| 日韩国产成人自拍视频| 素人一区二区三区日韩| 97精品一区二区视频| 91精品91久久久久77777俄罗斯老妇姓x| 加勒比人妻综合| 日韩精品操少妇| 欧美色图中文字幕| 97青青操视频| 在线人妻熟女一区二区三区四区五区| 欧美制服网站美腿丝袜| 亚洲精品蜜桃久久久一区二区三区| 免费久久精品麻豆一区二区av| 国模私拍一区二区三区神乳| 国产精品不卡高清在线观看| 国产农村妇女精品| 97欧美视频| 999999精品| 日韩精品一区二区人人人| 99蜜月精品久久| 激情人妻另类| 欧美激情黑人| 欧美女同在线| 久久尹人大香焦视| 精品日韩人妻视频| 天天躁日日躁AAAAXXXX国产| 豆花视频操逼网址| 太久视频| 日韩性爱播放| 色色色色色色色色色色色色色色综合| 欧美图片偷拍| 熟妇艹鸡八| 欧美人妻色| 日本淫穴在线| 亚洲人妻久久久| 人人澡人人澡人人| 日韩免费一级性爱视频| 精品亚洲国产成人精品| 国产精品一区二区黄片| 欧美日不卡| 爱干爱射网啊啊啊| 情侣操 逼视频99| 天天拍天| 九九九精品成人免费视频小说| 370p日韩欧美亚洲精品| 亚洲情色第一页| 99久久综合| 亚洲人精品午夜不卡| 国产sv美女内射| 偷拍亚洲| AA特级绝黄| 999久久久精品国产| 丁香婷婷激情五月天无毒不卡| 吉川爱美亚洲二区在线| 亚洲情色综合| 五月天婷精品激情| 神马久久久久眼| 人妻少妇精品久久久| 日本大香蕉综合网红本杳社区| 凹凸视频在线一区二区| 看日韩美女二区三区免费操逼视频| 有码免费观看| 性色A∨91| 久操网址| 久久夜嗨| 久久东京热久久| 波多野结衣先锋影音| 91美女中出| 欧美精品久久96人妻无码| 亚洲欧美综合网| 十八禁啪啪视频| 亚洲蜜桃V妇女| 荡小穴在线观看| 激情婷婷丁香| 欧亚性爱在线视频| 久操高青| 精品传媒在线一区| 3D污黄视频在线观看| 久久久影院| 日产精品久久久一区二区| 超碰国产精品久| 日韩天美| 中文字幕AV中出| 午夜寂寞欧美| 欧美熟妇亚洲版| 精品人妻一区二区三区四区石在线| 久久婷五月天| 91超碰丝袜制服| 可能人人看人人摸| 激情文学欧美| 欧美老妇曰批的视频| 有码免费观看| 欧美色狠| 欧美成人9797| 日本久久女同性恋视频| 麻豆精品久久久久久久| 外国免费性情大片| 毛片电影一区二区三区| 人伦四五区| 99久久久久久久久| 大但人体久久久久| 操B在线观看| 9999久久久久| 日本网色| 亚洲国产熟妇综合色专区| 91丨九色丨国产打屁股| 上床啊啊啊| 五月天综合| 91第一页| www鬼畜国产男人的天堂| 人人妻人人澡人人爽久久av| 欧美成人都市人妻| 日本阿v天堂在线观看| 美中韩AV综合网| 久久久久夜夜夜夜| 久久精品天美| 精品一区二区在线针对华人免费观看这里只有精品免费观看 | 蜜乳视频网站| 91久久国外网| 99色婷婷| 在线观看免费视频国产| 深夜激情| 蜜色网色哟哟| 久久久精品91八戒| 男女性扦B| 日本熟女中文| 亚洲无码精品AV久久久| 精品二999| 在线啊v一区| 欧美精品黑人猛交高潮| 江都AV在线| 国产最火爆久久国产网站网站| 搞中出视频在线观看| 日韩人妻中文视频| 欧美天天| 超碰欧美97资源| www99热| 国产精品com| 久久久久久久久久久久黄色| 激情专区综合| 强奸乱伦AV一天堂网| 狠操91,com| 五月丁香激情啪啪| av强奸乱轮| 91N综合网| 久久久婷婷| 人人妻人人狠人人| 亚洲性网| 久久内射| 91大香蕉伊人| 天天色怡春院| 欧美大香蕉卡久久| AV综合中文字幕干| 亚洲欧美综合区自拍另类| 88在线一区二区三区| 丁香五月天婷婷姐| 天天操天天舔| 久久黄色性爱视频| 在线午夜成人无码视频| 亚洲素人综合| 91熟女综合| julia高潮后不停追击中出| 国产一区二区三区免费视频在性观看| 欧中美三级一区二区三区| 秋霞午夜视频一区二区| 久久9久9久99久9久9| 91黑人无码激情在线| 成人一道本免费视频| 高颜值美女口爆高潮浪叫| 99青青草国产视频| 亚洲男人的天堂一区二区| 中文字幕在线观看二区三区| a v网站在线播放| 久久丁香久草综合网| 啊啊啊水好多| 春色综合免费| 亚洲天天精品| 好爽免费视频,| 久久精品72| 一区二区久久天天干狠狠| www色色com| 亚洲午夜福利视频| 国产精品无套内谢| 操迟操逼在巾线Fre看| 欧美不卡五十路| 欧美色图亚洲色| 男人的天堂VA| 人妻欧美| 欧美一二三| 91国产丝袜白虎| 天天影视之亚洲综合网| 超碰97导航| 国产情色在线| 老鸭窝成人| 久久久久极品| 男人天堂导航| 欧美在线天堂| 青娱乐休闲视频在线观看| 东京热大香蕉| 日韩啊V| 黄色免费一级在线毛片| 久久久久久久九九九九九九| 都市久久精品激情亚洲| 精品视频免费在线一区| 亚洲色 国产 欧美 日韩| 91社操逼| 国产又色又爽又舒服的三级视频 | 九九九九九九精品| 97视频免费播放| 另类天堂| 亚洲国产尤物yw在线观看| 乱伦av麻豆| 男人的天堂一区三区| 免费啪啪啪网站18岁| 影音先锋国产精品| 超碰日本97美女人妻人人玩人人爱 | 人妻 欧美 中文| 九九九九免费视频| 97久久久久| 日本视频在线中文字幕| 色狠狠 - 百度| 天天色播| 加勒比伊人综合| 国产亚洲国产超碰| 国产少妇与亚洲av| 吉川爱美亚洲二区在线| 精品无码久久| 欧美日韩另类在线| 97av在线视频| 狠综合网| 日本不卡五区| 中文字幕123| 丁香五月天啪啪| 欧美性,色九九| 亚洲做性| 国产精品区在线12p| 丁香色五月 97干| 亚洲精品久| 欧洲一区二区三区四区在线观看| 日韩无码一级黄色av片| 欧美亚洲日本激情在线| 久久AV无码1区2区3区| 亚洲成a人片在线观看中文!!!| 777奇米影视777四色| 一区二区视频在看| 久久精品 六十路 熟女 欧美| 亚洲自拍天堂| 亚洲色堂免费视频| 亚洲日韩97| 色欲三区| 日韩专区数据列表-第3230页-精品国产一区二区三区香蕉 久久99熟女人妻中文字 | 思思热在线视频免费| 男人的天堂一区三区| 色婷婷在线视频精品导航| 91中文字幕在线观看| 成人一道本免费视频| 久久香蕉影院| 九九九九一区| 亚洲欧洲网站免费观看| 97精品综合久久网| 极品欧美一区二区三区| 熟女丝袜视频| 五十路一区无码| 2018色综合天天操| 少妇熟女视频一二三区| 国人欧美精品一区二区| 97精品综合久久网| 五十路六十路素人熟女| 国产有码一区| 欧美人黑A片无码免视费| 五月婷婷久久综合| av天堂加勒比| 综合婷婷| 啊啊啊啊嗯嗯在线久久久| 伊人黄色视频免费观看| 夜夜 中文视频rt| 亚洲国产成人精品999| 天天综合91在线| 欧美黑人熟妇精品91| 婷婷色婷婷| 综合色区偷拍| 亚洲Av诱惑| 亚洲精品成人激情在线| 亚洲国产97在线精品一区| 亚洲精品a人片在线观看视| 日本不卡一区二区三区| 国产视频不卡在线观看| 日本布卡一区二三区| 大香蕉综合在线| 久久蜜桃一区二区| 小草三级久久观看| 亚洲欧美日韩制服另类| 精品美女少妇一区二区三区| 日本午夜操逼| 97伦综合| 精品久久在线区一区| 精品蜜乳AV免费观看| 亚熟在线| 免费簧片在线观看| 伊色久人大在线| 一区二区三区精品黑丝白丝酒店对鸡 | 欧美亚洲第1页| 国产AAAAAABBBBB| 婷婷15月天青娱乐| 激情婷婷五月天| 九九综合九九综合| 激情小说亚洲图片| 日本 欧美 亚中文字幕| 无码操逼视频一下| 亚洲色天堂九9| 精品久久久无码| 欧美日韩黄片精品在线| 中文字幕精品三级久久久| 婷婷午夜| 再深点灬舒服灬太大了添视频| 欧美综合777| 日本人体九九九九九九| 无码精品久久久天天影视| 88在线一区二区三区| 亚洲天堂性爱| 果冻国产精品麻豆成人av| 91五十路| 欧美色综合图片| 激情五月天丁香| 国产欧美日本亚洲精品| 综合熟妇一区二区三区| 和协无码影院| 激情av| 国产日韩色综合| 全国男人天堂网| 免费9 1久久| 久热大香蕉| 强奸国产精品视频| 99久久99久久免费精品蜜臀| 久九9精品| 江都AV在线| 天美麻花大全视频| 日韩激情小说一区二区| 欧美色www亚洲国产阿娇要播| 欧美偷偷网| 色爱综合网欧美| 伊人久久88国产女| 睡产熟女乱伦| 日本丝袜人妻内射| 无码人妻精品一区二区三区99不卡| 97精品一区| 97超碰亚洲| 亚洲国产综合久久天堂| 色人久久| 欧美视频边做饭边橾| 永久免费av无码网站国产app | 国产日韩在线播放| 久久天天艹| 中文字幕丰满子伦无码专区在线视频最新 | 96精品在线| 日本 欧美 国产一区| 一牛影视成人片免费| 国产精品久久久久久久无码AV| 理论久久婷婷网8| 女人天堂网| 自拍第一页| ...日韩成人一区二区三区字幕| 欧美色图亚州激情| 日本A级视频| 中文有码第五页| 91天天日| 尤物av网站| 日韩AV一区二区三区三州三州| 亚洲综合网电影91| 99热超碰| 亚洲97P| 欧美精品91| 台湾大香蕉99热| 蜜桃精久三区| 熟女AV一区| 亚洲十八禁止| 亚洲做性| 91人妻熟女| 欧美双插| 青娱乐二区免费| 午夜国产乱伦视频| 女同性恋久久| 久99热| 日韩亚洲美女一区久久| 殴美日韩m| 久久m| 精品人妻一区二区三区蜜桃视频| 欧美色图欧美| 97在线免费观看| 日韩在线欧美精品一区二区| 97在线精品观看视频| 欧洲成人性爱视频| 亚洲激情网| 熟妇人妻一区二区| 国产久久日| 伊人宅男大香蕉| 蜜臀久久99精品久久久久| 亚洲 欧美 日韩 国产一区二区| 欧美日韩性爱电影在线| 亚洲乱码尤物193YW| 丁香五月激情网| yirendaxiangjiashipin| 亚洲自拍一区夜夜操| 欧美1区二区三区公司| 欧美日本中字另类在线| 色九月婷婷| 97亚洲资源| 久久久月天| 亚洲AV成人精品网站在AV| 91操人| 国产av白丝| 综合激情一一91| 啪啪啪亚欧美视频| 精品人妻一区| 啊好大好舒服| 亚洲少妇自拍中文字幕懂色| 欧洲黄色网| 激情色色| 天天超级碰碰碰| 神马久久久久久久| 国产精品一区二区黄片| 天堂精品小草| 熟妇熟女一区二区三区| 岛国在线一区二区三区| 欧美专利1区2区3区4区5区免费| 亚州男人的天堂| 97在线视频观看| 超碰在线国产| 国产情色在线| 亚洲欧洲中文日韩女优乱码| www.狠狠操| 精品制服美女中文一区二区三区| 色屁屁影院www国产| 丁香五月婷婷基地| 噜噜噜噜天天狠狠| 久久久免费的精品| 免费啊啊啊| 免费日韩黄片| 中文字幕丝袜美腿| 屁股久久久久久久| 少妇高潮99p| 久久精品国产亚洲粉嫩| 十八禁啪啦拍视频无遮挡| 欧美夜夜骑视频| AV天堂国产| 91丝袜美女| 欧美人体性爱互联网第一页婷婷日本| 久久久97| 欧美性色欧美| 亚洲图片欧美在线视频| 自拍啪啪视频| 无码国产精品午夜不卡(| 白丝在线一区| 1禁看欧美黄片免费看| 中国黑人三级片网站上区| 亚洲中文字幕在现观看| 色哟哟国产精品免费网址| 欧洲精品一级二级精品综合视频综合 | 日本 色 导航| 亚熟hd视频在线| 美女视频尤物网在线看| 欧美在线啊啊啊| 欧美日韩大黄片| 青青久操| 人干人人人操人人摸| 欧美大片一区二区三区| 91足交| 亚洲人精品久久久| 亚洲乱熟女一区二区三区大香蕉| chaopen97久久| 久操热| 精品人妻一区二区三区日产| 青娱乐亚洲热| 美国黄片aaa| 亚洲熟女精品| 欧美第二页午夜| 久久久久国产无av| 色五月AV| 一直超碰| 久久这里只精品99re66图| 黑人性欧美| 大香蕉伊人一区在线观看| 人人操 欧美| 超碰97在线色男人??| 亚洲成人久久美女| 久久少妇| 91老熟女老女人国产老太| 免费中文在线| 超碰在线一区| 久久大精品乱码视频人妻熟女| 国产精品熟女丝袜一区二区| 欧美+日产+中文| 99操| 丁香五月婷婷啪啪| 超清福利精品视频在线| 骚鸭AV| 97硬碰| av天堂5| 岛国爱情动作片在国产AV无码专区亚洲AV漫画| 91久久堂| 日韩精品区二区三区不卡| 无码人妻精品一区二区三区99不卡| 日韩精品大香蕉伊人在线| AV中文在线| 亚洲国产精品99久久久| 性欧美999| 国产小炒后入式| 色色热| 一本大道不卡一二三区| 色与欲影视| 99re在线视频国产| 爱爱动态120秒| 近亲乱伦一区二区| 黄片视频观看| 蜜臀久久99精品久久久久久成人小说 | 女性喷水高潮在线观看| 久久激情视频| 一区,二区,三区视频| 人妻久久久| 国产男人又猛又粗又爽| 老熟女乱伦片| 欧美激情 亚洲色图| 久久99草| 人妻一区久久二区三区色播| 爽爽淫人网| 欧洲一级性爱视频在线观看| 日韩黄片影院| 91美女在线观看| 欧美日韩性爱无码| 蜜乳AV免费观看| 亚州男人天堂| 久久久久久999| 老鸭窝在线视频播放| 劲爆欧美人妖三区91| 欧洲与亚洲欧美精品中文字幕| 亚洲另类久操网| 久久久九97| 亚洲精品男人的天堂| av片在线观看免费播放| 久久av成人无码免费| 高清国产精品无码| 国产9 9在线 | 亚洲| 国产成久久综合片| 亚洲无码精品AV久久久| 日韩兔费看黄片| 久久久久久久精| 国产精品96久久久久久| 中文字幕在线免费观看| 天天网综合| 亚洲97在线观看| 国产深夜福利| 国产精品美女久久久久久网站| 1240青青草一区二区三区视频天爱| 啊啊啊水好多| 大香蕉久久| 凹凸视频在线一区二区| 少妇熟女1区2区3区| 人人人摸人人| 免费公开人人操| 操逼视频亚洲| 日本精品成人无码| 色性综合| 久久亚洲天天做| 色www精品视频在线观看| 男人的天堂日本东京热| 日本天堂在线播放| 欧美宗合网| 人妻夜夜爽天天爽三区麻豆AV网站| 久久大黄片| 精品国产91内射久久| 国产熟女完整版中字 | 91老熟女91老女人| 91欧美色| 午夜男女爽爽大片免费观看| 激情抓乳插进去啪啪啪日韩 | 国产白丝在线| 欧美在线第五页| 男人精品区| 美女操逼A A| 殴美大黄片| 国产久久一区二区午夜| 禁十八久久| 人人妻天天做天天爽| 97欧美综合网| 亚洲日韩视频二区| 亚洲欧美国产成人综合不卡| 视频二区美腿丝袜制服人妻欧美| 97高清啪啪| 久久精品高清无码一区| 欧美AB在线| 成年人黄色小视频网站| 99热这里只有精品8| 九九英色视频| 0755午夜福利视频| AA级电影三区| 婷婷精品| 日韩中文字幕2020| 精品久9| 亚洲第一黄色av网站| 午夜精品一区二区三区三上悠亚| 亚州春色| 97亚洲在线| 日韩欧美中文日韩欧美色| 久久久999日本大片| 亚洲999综合| 男女啪啪网站免费视频| 探花精品视频| 青青草字幕AV| 不卡av免费在线网址| 综合久久欧美| 大香蕉啪啪啪啪在线| 超碰美女97| 九九探花视频在线观看| 一区二区三区日韩欧美| 国产精品久久久亚洲第一牛牛_在线观看 | 尤物黄色在线观看网站| 天天色综合图片| 天天躁夜夜躁狠狠躁AV| 岛国1区2区3区在线观看| 婷婷五月天综合网| 国产av色网| 亚洲av综合色| 蜜桃不卡一区二区| 青娱乐国产剧情av一区| www.99视频| 亚洲精品久久久久久| 国产亚洲精品美女久久久| 91人妻超碰| 97超碰9| 香蕉婷婷| 欧美日韩亚洲少妇寂寞影院正在播放| www.大香| 日韩精品9区| 岛国福利在线精品播放| 美女人妻色网站| 午夜一区| 欧美国产日韩清纯唯美| 欧美亚州综合网图片| 欧美一级A片在线看视频性色| 亚洲色情在线影视| 欧美精品99久久久**| 国产精品suv一区| 黑人精品XXX一区一二区| 91亚洲不卡一区| 97操| 色婷婷综合久久中文字幕雪峰| 国产精品午夜AV完会免费 | 日韩偷拍一区二区三区| 自拍丝袜美腿人妻| 日韩av免费一级电影| 97久久精品国产| gogogo免费高清看中国国语 | 亚洲图片婷婷五月天| 老司机久久| 日韩欧美中文日韩欧美色| 欧美传媒一区| 蜜桃av综合网发布| 蜜臀久久99精品久久久久久成人小说| 亚洲另类在线观看| 亚洲色图欧美色图另类图片| 91国产丝袜足交精品视频| 亚洲成人黄色在线观看| 另类图片亚洲加勒比另类图片亚洲加勒比另类图片亚洲加勒比 | 精品人体无圣光凹凸| 久久视频,这里只有精品| 精品一区二区亚洲国产| 久久东京热久久| 色噜噜国产在线| 日韩在线性爱免费视频| 后入式999| 人妻久久久久久| 亚洲欧美电影| 亚州中文字幕超碰97| 天天天天天天天天天天干美女| 91天天综合在线| 色999人与兽| 免费无码国产精品v片在线观看| 大屁股国产在线视频| 任你爽视频| 秋霞一集毛片观看| 大香蕉92| 欧美大香蕉卡久久| 人妻系列无码专区中文有码| 日韩综合97p| 亚洲高清视频在线观看| 国产在线视视频有精品| 国产精品午夜AV完会免费| 丝袜翘臀后入欧美校园亚洲自拍另类小说一区中文字幕少妇诱惑 | 成人夜夜| 欧美熟爽综合| 欧美熟女操屄| 秋霞午夜成人福利片片| 亚洲一二三四区在线免费看视频| 日韩乱码av| 色乱二区| 91免费看一区二区三区| 久久久草草精品| 精品人妻一区二区三区-国产精品| 九色在线熟女国产黑人| 国产福利精品98视频| 国产热av| 亚洲精品欧美专业| www.久久| 一本一道vs波多野结衣| 在线午夜成人无码视频| 97精品视频在线播放| 国产精品制服丝袜中文字幕日韩一区二区三区| 综合影视国产无码| 精品欧美老熟女一二区| 神马久久久久久久久| 超碰1024久久| 国产乱码久久| 久久综合激情| 搡老人老9丨女老熟人| 无码不卡亚洲成?人片| 91精品91久久久久77777| 在线亚洲精品久久久| 少妇被玩视频二三区| 操碰97| 国产18精品亚洲精品| 久久久久亚洲AV无码专区少妇| 欧美超碰在线| 中文三一区| 成人草草视频| 视频黄站| 超碰久久精品| 国产青青美女玩逼视频| 夜夜高潮夜夜爽高清视频一| 日本一本一区二区三区四区五区欧美日韩中文字幕 | 偷拍欧美亚洲| 亚洲天堂资源| 中文字幕文字幕无码一区二区三区电影99 | 天天躁日日躁狠狠狠躁| asc国产精品| 青青青草伊人精品| 亚洲精品 欧美精品| 男人久久精品| 国产天美传媒精品| 色综和网| 欧美性综合| 中亚黄色三级大片| 99精品高潮| 加勒比av官网在线| 日本道日本道中文字幕日本道最新日本道在线观看 | 91网站18+| 九九人妻| 偷拍亚洲视频一区二区三区四区| 伊人嫩草| 一本色道人妻久久| 97视频免费播放| 黑人猛交| 在线人成亚洲视频免费观看| 国产精品盗摄 偷窥盗摄| 成人av在线播放| 亚洲图片激情综合另类| 久久亚洲AV无码专区首页| 一区二区三区探花在线观看| 欧亚乱色熟女一区二区| 色色色色网站| 狠狠色综合网| 男人的天堂在线有码| 7月婷婷综合| 婷婷情色五月天| 激情文学 亚洲图片| 激情四射婷婷六月天| 超碰精品97| 国产精品香蕉| heyZO天然素人无码AⅤ专区| 国产亚洲女v在线观看| 国内毛片国产专区二| 任你爽视频| 熟妇最新先锋一二三区| 超碰综合色| 人妻少妇无码| 可免费观看的av毛片中日美韩| 日韩福利综合一区| 囯产操逼片| 玖玖视频在线资源一区二区三区| 国内黄色精品| 欧美成人国产精品| 清纯唯美亚洲综合| 天天色天天干天天爱| 欧美精品1区2区3区| 天综合网| 青青草玖玖爱| 91欧美综合| 台湾成人无码AV| 97人人射| 亚洲揄拍网| 天天欲望网| 日韩高清黄片| 色婷婷久久| 国产精品网站免费| 亚洲色性| 99国产在线 精品 视频| 91精品91久久久中77777| 大香蕉99热| 欧美精品庄| av在线不卡一区二区三区| 丁香五月影院| 久久久久久久六六| 狠狠干91| 精品久久人妻成人网| av大香蕉网站| 国产麻豆91欧美一区二区久久婷婷国产精品| 九七超碰| 大屁股xxxxx| 欧美在线大香蕉| 中文 人妻 制服| 午夜福利免费福利视频| 翔田千里无码一区| 日本熟女不卡视频| 亚洲最大的黄色电影网站。| 中文字幕一区日韩精| 啊啊啊在线观看免费视频| 中国熟妇| 青草青草久热| 78久久久| 欧美高清第一页| 亚洲色图亚洲无码强奸乱伦| 欧洲乱码视频| 日本色色色网站免费看不卡| 久久久精品国产亚洲AV无码| AV99热18这里只有精品| 丰满熟女一区二区三区在线播放| 亚洲一区二区性爱电影| 免费成人在线熟妇网| 欧美夜夜草视频| 欧美日韩国产在线| 老鸭窝成人| 国产 无码 一区二区| 欧亚第一综合网| 欧美综合天天| 夜夜操2028| 亚洲丝袜在线观看| 亚洲成av人片色午夜乱码| 黄色片G G G| 国产探花精品在线| 夜夜福利| 老熟女乱子伦中文字幕一区二区| 亚洲天堂另类小说男人| 91天天综合| 久久理论字幕视频| 玖草在线视频| 啊好大好舒服| 色哟哟 日韩精品| 久久亚洲骚逼综合| 探花视频免费观看国产专区| 日夜啪电影| 人人操,人人液| 中文字幕在线观看第二页| 又大又大又大又粗爽高潮观看 | 欧美亚洲日韩人妻在线观看| 天堂亚洲欧美| 啊啊啊啊一区| 97超碰站| 天天综和| 男人天堂黄片| 91处女在线视频| 91free福利| 人妻丝袜一区二区三区在线| 亚洲熟妇自偷自拍另欧美| 国产精品香蕉| 超碰97资源大奶| 亚洲图片激情综合另类| 91操人| 激情专区综合| 中文久久久| 久插综合| 男人a天堂手机在线版| 久久精品人妻一区二区三区| 色色激情| 成年人网站在线免费观看| 中文字幕-区二区三区四区视频中国| 蜜乳Av成人片网站| 骚鸭AV| 精品夜夜澡人妻无码| 国产精品永久免费10000| 欧美骚少妇| 性爱动态120秒| 中文字幕一区二区三区四区在线视频| 人人噜夜夜操| 日本人妻A片成人免费看片| 日韩无码极品| 激情小说亚洲图片| 日日干日日| 中字幕人妻一区二区三区| 久久成人网站| 按摩中文字幕| 日韩人妻 中文字幕| 日本女人久久久| 神马影院午夜福利久久久| 99热自拍| 影音先锋新男人| 综合熟妇一区二区三区| 成人影 天天操 亚洲| 操B在线观看| 91搡老女人老妇女老熟女歌词翻译| 二级久久网| 天天干天天干天天干| 隔壁邻居波多野结衣中文字幕| 欧美96在线|欧| 啊啊啊啊二区好大| 4399成人黄A片| 免费啪啪av| 亚洲中文字幕熟女少妇一区二区| a人欧美综合天堂麻豆| 丁香五月婷婷色| 在线观看成人性爱免费小视频| 中文字幕一区二区无码成人| 国产精品视频| 射 色综合| 色一色综合网| 欧美一二三级精品在线| a啊啊啊啊啊啊啊啊一区二区| 亚洲AV不卡在线观看尤物| 精品久久久久久亚洲| 国模无码一区二区三区在线| 五月天我淫我色av| 99re99| 国产精品蜜乳AV| 亚洲中字幕日本一区二区三区 | 五月天社区| 无码聚合| 思思热免费在线视频| 精品视频一区二区| 日韩99999| 综合网亚洲1| 亚洲熟女乱综合一区二区三区| 91久久久久久久久久久| 99人人干| 无码 有码 国产18p| 亚洲小电影免费涩涩成人在线高清| 一区二区三| 日本二三四区| 日本不卡中文| 久久久精品一区二区| 91久久堂| av亚洲天堂资源网站| 久久久久9久久久久| 人妻啊啊人妻啊啊| 久久精品国产精品亚洲艾通辽熟妇| 黄色一级视| 欧美黄片欧美黄片xxx| 日韩欧美aⅴ综合网站发布| 两女互慰AV高潮喷水在线观看| 12一15性XXXX粉嫩国产| 精品人妻一区二区三区四区不卡在| 综合亚洲欧美| 国产999精品久久久| 九久久九九久视频| 久久香蕉国产线看观看亚洲女人 | 91精品国产91熟女| 男人的天堂在线2| 狼人综合婷婷激情四射 | 影音先锋每日最新资源在线观看| 色欲天天综合久久久无码网中文| 欧美美女视频| 久久久久久九九九九| 91高潮| 欧美后入| 人人干人人操人人爱| 亚洲精品一二牛牛| 欧美自拍偷拍综合图片| 午夜乱轮操逼视频免费看| 嫩呦国产一区二区三区AV| 精品成人动漫一区二区| 日本视频在线观看污污污| 成人免费在线网站| 日韩成人免费电影| 人妻嗯啊啊在线播放| 澳门成人网站久国产日韩| av亚洲天堂资源网站|