Sail.js官方文件閱讀筆記(一)——總體結構
sails.js是一個後端開發框架,它是基於Node的著名框架express之上的。當前工作接手了一個系統,該系統的console部分是以sails.js完成其前後端功能的,故學習了sails.js的部分官方文件,特以此係列筆記以記之。因初學乍練,如有錯誤,歡迎指正。
在官網中,使用Sails框架專案的基本結構如下圖所示:
1.package.json
此檔案是npm的標準包管理檔案,它包含了應用所依賴的所有Node模板名與版本。
2.app.js
此檔案是Sails專案標準的入口。
當開發者使用sails lift來啟動Sails專案時,app.js檔案不會執行。該檔案即是一種不用輸入命令而更簡單的啟動方式,是應用最常見的啟動方式。
3.api
api資料夾中包含了應用後端的主要邏輯,它包含了MVC框架中的M和C。
它如今包含了以下模組:
Controllers:它包含了處理進來的請求的後端邏輯。
Helpers:它包含了應用中可被呼叫的各種方法。
Models:它包含了應用中的資料結構。
Policies:它是應用中進行各類限制的中介軟體。
還可能有一些歷史模組:
Hooks:它是可以向Sails核心中新增功能的模組。在啟動Sails專案和處理請求之前,可以利用Hooks來執行定製的程式碼。它類似外掛一樣安裝,但它總是為應用定製的。
Responses:它用來維護App中的HTTP狀態碼和表現。
Services:在Sails 1.0以前,它用於描述一些共有的功能。在新的版本中,推薦使用Helpers代替。
4.assets
此資料夾包含了專案所需的靜態檔案。
5.configs
此資料夾包含了對Sails專案的一些配置和定製檔案。
6. task
此資料夾包含一套Grunt任務及其配置,繫結以提供便利。Grunt的整合主要為了繫結前後端的資源,但它也可用於執行各種開發任務,從瀏覽器編譯到資料庫遷移。
6.1 工作方式
Sails中繫結的資源管道是一組標準初始化設計的Grunt任務配置為了使應用更有一致性和成效。
Sails中的全部前後端資源流都是可定製的,它為箱外提供一些策略,可以滿足應用前後端開發的各種需求。
6.2 Sails自動執行的任務
當輸入以下命令時,Sails會自動執行 (tasks/register/
) 裡的任務。
sails lift
執行預設任務 (tasks/register/default.js
).
sails lift --prod
執行prod
任務 (tasks/register/prod.js
).
sails www
執行構建任務(tasks/register/build.js
).
sails www --prod
(production)
執行buildProd
任務 (tasks/register/buildProd.js
).
6.3 定製
可以修改、刪除、替換任何的Grunt任務來滿足需求。可以新增自己的Grunt任務,只要在grunt/config目錄中寫一個js檔案來配置這個新的任務,然後在合適的父任務中註冊(在 grunt/register/*.js
)。
6.4 必須使用Grunt
不是,可以禁用。刪除Gruntfile或者禁用Grunt hook即可。
6.5 若無前端
可以使用。
如果確保一直無須前端,可以生成一個Sails應用並用使用--no-frontend。
7.views
此資料夾包含了定製的檢視。
建立定製檢視時,可以在此目錄下建立資料夾並在其中建立ejs檔案。為了使它能被客戶端渲染,必須在config/route.js中建立路徑,或者在controllers方法中使用res.view()。