資料模型
你可以用以下三種方法為乙個loopback應用新增業務邏輯
• 在資料模型中新增業務邏輯。在這個場景下,你可以 remote methods (即自定義的繫結到資料模型rest api上的方法), remote hooks (在呼叫模型的remote methods時被觸發) 和 model hooks (在呼叫模型的crud操作時被觸發) 上新增業務邏輯
• 在boot scripts上新增應用啟動時的業務邏輯。
• 通過中介軟體為應用新增業務邏輯。類似於傳統的express中介軟體.
除了業務邏輯外,你還可以在資料被存入後端資料來源前驗證資料。
階段型中間層 (middleware phases)
當應用響應乙個http的rest請求時,中間層邏輯會被依次觸發。因為loopback本身是基於express的,所以loopback的中介軟體也類似於express 中介軟體。不過,loopback的中介軟體引入的階段 (phase) 的概念。通過將中介軟體定義在不同的階段,開發人員可以更明確地定義中介軟體的觸發順序,從而避免在標準的express中介軟體觸發順序的問題。
資料來源和聯結器(data sources and connectors)
loopback將後台的資料服務(例如:資料庫,rest和soap api,以及其他儲存服務) 統稱為資料來源。
資料來源通過聯結器直接運算元據庫和其他後台服務。應用程式不會直接使用聯結器,而是通過 datasource and persistedmodel api方法來訪問後台服務。
loopback 元件
loopback元件提供了額外的類似於「外掛程式」的服務:
loopback 的核心就是資料模型。資料模型用於描述後端的資料來源,如資料庫或其他rset, soap等後端服務。從使用者的角度來看,loopback的資料模型可以是乙個js物件或者是一組rest的api。
所有loopback的資料模型都自帶了一組rest api用於crud操作。
所有的資料模型最終都繼承自乙個基礎模型物件。這個基礎模型物件具有讓所有繼承自它的資料模型具有新增 hooks 和 資料驗證 的能力。資料模型間的繼承關係如左圖所示。當你將資料模型連線到乙個持久層的資料來源時,那麼這個資料模型將成為乙個具備crud操作的已連線模型。所有loopback的內建的資料模型同樣繼承自基礎模型物件。
內建的資料模型資料模型的crud操作
當你將資料模型連線到乙個持久層的資料來源(例如資料庫或外部的rest api)時,那麼這個資料模型將成為乙個已連線模型。已連線模型具備完整的繼承自persistedmodel的crud操作能力。
操作rest
loopback model method(node api)*
對應的sql操作
create
put /modelname
post /modelname
create()*
insert
read (retrieve)
get /modelname?filter=…
find()*
select
update (modify)
post /modelname
put /modelname
updateall()*
update
delete (destroy)
delete /modelname/modelid
destroyall()*
delete
*以上僅僅是一些常用的方法,其它的方法也可以提供相同的功能,例如,除了find(),也可以使用findbyid()、findone()和findorcreate()。
業務邏輯開發工具
loopback 提供了兩組基本的應用開發工具:
• slc loopback, 是個命令列工具用於建立和修改loopback應用。
• strongloop arc, 是個圖形化工具擁有開發,部署和監控loopback應用。
其中 slc 命令列工具將輔助開發人員在整個開發周期中生成和修改各種應用元件:
1. 使用應用生成器 迅速生成原型應用(scaffold) - slc loopback.
2. 使用 model generator 生成資料模型及屬性 - slc loopback:model.
如果需要在已有的模型中新增額外的屬性,你也可以使用 property generator - slc loopback:property.
3. 使用 data source generator 新增資料來源 - slc loopback:datasource.
4. 使用 relation generator 新增模型間的關係 - slc loopback:relation.
Cocos2d x 核心概念
場景 特定時間,特定地點發生的事件的集合 層 圖層 ps中的層一致,場景是由乙個又乙個層構成的 tips 乙個場景可以有多個層,乙個場景至少有乙個層 在螢幕上移動的物件,他能被控制。特點 他是可以被控制的遊戲物件 通常是在螢幕上可以移動的物件 元素,如背景畫 動畫,如骨骼動畫等 例 手遊刺激戰場中你...
第2章 Docker 的核心概念
類似於虛擬機器映象,可以將它理解為乙個面向 docker引擎的唯讀模板,包含了檔案系統。比如 乙個映象可以只包含乙個完整的ubuntu作業系統環境,可以稱為乙個ubutnu映象。也可以安裝了android應用程式,稱為乙個android映象。docker 利用容器來執行和隔離應用。容器是從映象建立的...
Vuex 學習6 核心概念Module
教程來自vuex官網 和技術胖教程 模組組一般不用再專案較小的情況 由於使用單一狀態數,醫用的所有狀態都會幾種到乙個比較大的物件。當應用變得非常複雜時,store 物件就有可能變得相當臃腫。為了解決以上問題,vuex 允許我們將 store 分割成模組 module 每個模組擁有自己的 state ...