摘要:常見問題中間件執行是按照配置的排列順序執行的,所以需要開發者考慮配置的順序。數據校驗方法配置好校驗規則后,可以通過方法進行校驗控制器項目中的需要繼承類,這樣能使用一些內置的方法。項目創建時會自動創建了一個名為的基類,其他繼承該類即可。
安裝thinkjs
$ npm install -g think-cli創建項目
$ thinkjs new demo;項目結構
$ cd demo;
$ npm install;
$ npm start;
默認創建的項目結構如下:配置
系統默認配置(config.js通用的默認配置)
Middleware / 中間件Adapter 配置
關系數據庫
中間件執行過程
中間件配置格式
meta: 顯示一些 meta 信息,如:發送 ThinkJS 的版本號,接口的處理時間等等
resource: 處理靜態資源,生產環境建議關閉,直接用 webserver 處理即可。
trace: 處理報錯,開發環境將詳細的報錯信息顯示處理,也可以自定義顯示錯誤頁面。
payload: 處理表單提交和文件上傳,類似于 koa-bodyparser 等 middleware
router: 路由解析,包含自定義路由解析
logic: logic 調用,數據校驗
controller: controller 和 action 調用
Logic / 校驗handle:中間件的處理函數,可以用系統內置的,也可以是引入外部的,也可以是項目里的中間件
enable:是否開啟當前的中間件,比如:某個中間件只在開發環境下才生效。
options:傳遞給中間件的配置項,格式為一個對象,中間件里獲取到這個配置。常見問題
中間件執行是按照配置的排列順序執行的,所以需要開發者考慮配置的順序。
在中間件里可以通過 ctx.param、ctx.post 等方法來獲取 query 參數或者表單提交上來的數據,但有些中間件里希望設置一些參數值、表單值以便在后續的 Logic、Controller 中獲取,這時候可以通過 ctx.param、ctx.post 設置:
Controller / 控制器當在 Action 里處理用戶的請求時,經常要先獲取用戶提交過來的數據,然后對其校驗,如果校驗沒問題后才能進行后續的操作
注:若自己手工創建時,Logic 文件名和 Controller 文件名要相同請求類型校驗
校驗規則格式
基本數據類型
支持的數據類型:boolean、string、int、float、array、object,對于一個字段只允許指定為一種基本數據類型,默認為 string 類型。數據校驗方法
配置好校驗規則后,可以通過 this.validate 方法進行校驗
項目中的 controller 需要繼承 think.Controller 類,這樣能使用一些內置的方法。當然項目中可以創建一些通用的基類,然后實際的 controller 都繼承自這個基類。項目創建時會自動創建了一個名為 base.js 的基類,其他 controller 繼承該類即可。
router路由配置
Action 執行
Action 執行是通過中間件 think-controller 來完成的,通過 ctx.action 值在 controller 尋找 xxxAction 的方法名并調用,且調用相關的魔術方法。
Modal關系數據庫(創建模型文件)ctx 對象
Controller 實例化時會傳入 ctx 對象,在 Controller 里可以通過 this.ctx 來獲取 ctx 對象,并且 Controller 上很多方法也是通過調用 ctx 里的方法來實現的。如果子類中需要重寫 constructor 方法,那么需要調用父類中的 constructor,并將 ctx 參數傳遞進去:
注釋:具體內容請參考thinkjs官方文檔--關系數據庫
thinkjs--pm2部署首先先全局安裝pm2
命令:sudo npm install -g pm2創建項目時,會在項目目錄下創建名為 pm2.json 的配置文件
nginx部署項目啟動
pm2 start pm2.json(需在項目路徑下執行)
創建項目時,會在項目根目錄下創建了一個名為 nginx.conf 的配置文件,將配置文件防止服務器/etc/nginx/conf.d路徑下:
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/105585.html
摘要:本文幫助你往中添加一個新的頁面,沒有原理描述,只提供一個感性認識。首先需要一個項目我們創建一個叫做的項目所有選項一路確認即可在該目錄下通過命令向項目添加模塊通過命令行工具,添加模塊的控制器文件。感性認識命令行工具可以用來做很多事情。 本文幫助你往Thinkjs3中添加一個新的頁面,沒有原理描述,只提供一個感性認識。 首先需要一個Thinkjs3項目 我們創建一個叫做fuck的項目 $ ...
摘要:本文幫助你往中添加一個新的頁面,沒有原理描述,只提供一個感性認識。首先需要一個項目我們創建一個叫做的項目所有選項一路確認即可在該目錄下通過命令向項目添加模塊通過命令行工具,添加模塊的控制器文件。感性認識命令行工具可以用來做很多事情。 本文幫助你往Thinkjs3中添加一個新的頁面,沒有原理描述,只提供一個感性認識。 首先需要一個Thinkjs3項目 我們創建一個叫做fuck的項目 $ ...
摘要:非常有幸邀請到李成銀老師,進行一期圖靈專訪。具體工作中,技術能力可能只占了,軟素質方面的能力卻高達。大數據處理隨著大數據處理越來越熱門,很多項目都要在前端進行大數據處理和展現。提案可以大大提升在大數據處理方面的性能。 非商業轉載請注明作譯者、出處,并保留本文的原始鏈接:http://www.ituring.com.cn/article/260246 李成銀,奇虎360前端技術專家,Th...
摘要:最近剛剛學習了一個的開發框架,最重要的是可以用開發傳送門以下是學習過程中的筆記上面時全局安裝完成后用檢查是否成功創建了一個名為的項目,然后進入目錄,安裝依賴,啟動項目,瀏覽器打開就可以看到頁面了。 最近剛剛學習了thinkjs--一個node的MVC開發框架,最重要的是可以用es6/es7開發【傳送門】 以下是學習過程中的筆記: npm install thinkjs@2 -g --v...
閱讀 2953·2021-11-24 09:39
閱讀 2861·2021-09-29 09:34
閱讀 3555·2021-09-24 10:23
閱讀 1741·2021-09-22 15:41
閱讀 1693·2019-08-30 15:55
閱讀 3510·2019-08-30 13:58
閱讀 2617·2019-08-30 13:11
閱讀 1665·2019-08-29 12:31