1. 程式人生 > >Sail.js官方文件閱讀筆記(一)——總體結構

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()。