老web換新枝----Sails.js行動裝置的全新生產力(二)

來源:互聯網
上載者:User

標籤:web

選擇 Sails.js

    一個明顯的 Node.js 風格。具體來講,Sails 使用分層開發和約定優於配置(convention over configuration),這兩種開發技術已被 Rails 和類似的架構普及。Sails 還整合了其他一些 Node.js 包作為關鍵組件,這意味著不需要從頭學習該架構。另一個優勢是,事實上 Sails.js 的文檔在不斷改進,這是任何開源項目中都要尋找的一個關鍵計量。

    在第一部分中,重點介紹 Sails 如何?分層開發。未來的幾部分將介紹約定優於配置和使用 Sails 編碼的其他便捷性。

新 MVC

“對傳統 MVC 架構的這種重新設定,實現了架構師和開發人員長久以來在應用伺服器中尋找的東西:一個包含商務邏輯和驗證的單一位置,以及一個用於多個用戶端的通用介面。”

    Sails 的分層開發方法與許多傳統 Web 開發人員可能期望的不同。事實上,Sails 是新興的架構種類中的一個,這些架構通過調優 MVC 而重新定義了 Web 應用程式開發的前景。與傳統的 MVC 架構中將 MVC 組件放在伺服器上不同,Sails 將模型和控制器放在伺服器上,而視圖位於用戶端層。Sails 還將 “視圖” 視為一種更加一般性的概念;它可以是 HTML,但它也可以是一個在原生 iOS 或 Android 中編寫的行動裝置 App程式。

    不同於由伺服器向用戶端傳送回 HTML,Sails 僅傳送資料(通常為 JSON 或 XML 格式)。然後,用戶端(一個行動裝置 App程式 avaScript 架構編寫的單頁 Web 應用程式)使用該資料,並以最適合用戶端的方式呈現它。對於大部分用戶端,資料表示格式將為 JSON,因為許多單頁 Web 和移動用戶端都是使用 JavaScript 編寫的,而且可以輕鬆地使用 JSON。而且如果有必要,採用像 XML 這樣的不同的資料表示格式也不難。

   對傳統 MVC 架構的這種重新設定,實現了架構師和開發人員長久以來在應用伺服器中尋找的東西:一個包含商務邏輯和驗證的位置,以及一個用於多個用戶端的通用介面。伺服器僅需要以一種可被用戶端識別的表示設計資料元素,此方法提供了一種通過 HTTP 端點執行傳統商務邏輯和資料驗證的輕鬆方式。

HTTP API 應用程式範例

    這種新架構(我稱之為 HTTP API),但 HTTP API 系統放棄了 REST 提供的一定的靈活性和 “通用用戶端” 功能,以換取更簡單的模型。

    不同於 REST 系統,HTTP API 用戶端需要它們與之通訊的系統有一定的推斷性知識。它們需要提前知道預期的結果和可用的端點。這與 REST 架構相反,但我發現它所換來的簡單性物有所值。

    在一個 HTTP API 中,用戶端與伺服器之間的所有通訊在 HTTP 上發生。對於應用程式範例,我將使用 JSON 作為交換的資料格式,使用標準 HTTP 洞察來表示操作(GET 表示讀取,POST 表示插入,PUT 表示更新,DELETE 表示刪除)。我還將使用 HTTP 頭部作為傳達帶外資訊的機制,比如驗證資料等。但是,將一些狀態資料存放區在伺服器端,而且交換的資料將全部為 JSON 並假定為特定於此系統。

    HTTP API 的使用者樣本 — 行動裝置 App程式、單頁 JavaScript 應用程式或者甚至其他想訪問這裡包含的資料的伺服器 — 將知道我將向它們發回的 JSON 類型。示範任何應用程式都應能夠 “發現” 發回的資訊。更重要的是,使用者將知道它們的資料將發送到、被檢索或修改的後續 HTTP 端點。

需要的準備工作:前提軟體和設定

   “原生地” 使用 HTTP 來提交 GET 請求、POST 請求等。您不應被查看動態 HTTP 請求的想法嚇到。

     必須熟悉 JavaScript、Node.js 和 npm(JavaScript 代碼和庫的包管理器)。您應在所選的開發環境上安裝了 Node.js,知道如何在本地運行 Node.js 應用程式,並能夠自行使用 "npm-install" 安裝軟體包。儘管查閱所謂的 現代 JavaScript 很有協助在JavaScript:權威指南第六版 ,但事實,您僅需要 JavaScript 的實用知識即可開始使用 Sails。

    對於開發環境,請確保您機器上的 Node.js 是最新的,而且安裝了最新的 npm 版本。儘管 Node.js 社區明顯在嘗試保持各個版本向後相容,但無法保證我在這裡編寫的代碼就適用於該技術的早期版本。一經出售,概不負責。

安裝 Sails.js 和 MongoDB

    使用 Sails.js 唯一需要的安裝是在全域上將它安裝到 npm 緩衝,就像這樣:

npm install -g Sails.js。

    完成之後,您將擁有一個公用程式命令 sails 可供使用。像 npm 一樣,sails 是一個使用 JavaScript 為 Node.js 編寫的命令列公用程式。它充當著使用 Sails.js 架構執行多種操作的單一來源公用程式 — 比如建立一個新應用程式,運行該應用程式,在調試迴圈中運行該應用程式,為該應用程式產生新組件,等等。通過 npm 安裝 Sails.js 時,一定要使用 -g 選項。否則,它將僅安裝在當前的項目目錄中,而且這是該公用程式真正需要全域化的少有情況之一。

    在等待 Sails.js 架構下載和安裝期間,請花片刻時間確保您已在開發環境中設定了 MongoDB。如果沒有設定,現在正是 下載一個適合您的目標平台的安裝程式 的好時機。

    注意,Sails.js 使用的不僅僅是一個 MongoDB 後端;事實上,Sails.js 開箱即用地使用了一種基於磁碟的輕量型格式。這不是用於生產用途的推薦設定,但非常適合像我們這樣的樣本。到達本系列中使用 MongoDB 的部分還需要一段時間,但在我使用它時您一定很高興擁有它。

檢查安裝

Sails.js 完成安裝了嗎?使用命令 sails version 驗證它。

截至編寫本文時。只要上面的命令產生的輸出不是錯誤,就表明 Sails 已安裝並準備好使用。

Sails.js 顯示 "Hello, world!"

    根據慣例,程式員在學習一種新語言或環境時所做的第一件事是使用該語言編寫最簡單的程式:一個 Hello World 應用程式。幸運的是,Sails 產生了一個 Hello World 作為您建立一個新應用程式時的基本應用程式架構。我可使用此應用程式確認 Sails 基礎架構有效。為了向敏捷開發戰略致敬,

建立一個基本的 Sails.js 應用程式

    擷取一個新 Sails.js 應用程式非常簡單。請注意,預設情況下,該架構將產生一個更傳統的 Web 應用程式,其中伺服器產生的 HTML 會發回到用戶端。儘管這本身很有用,但如果目標是構建一個對用戶端不可知的 HTTP API,我希望確保沒有意外 "泄露" 將用戶端與伺服器捆綁在一起。為此,最佳方式是構建一個在項目任何地方都沒有用戶端組件的伺服器。在 Sails.js 中,這非常簡單,只需將您的預設配置設定為 --no-frontend。

    使用 --no-frontend 選項的不足之處是,我沒有可視的方式來確認該架構有效。假設該應用程式構建時未使用任何前端部分(差別僅在於產生的 views 目錄中填充的內容,所以它沒有可能看起來那麼複雜)。

    從開發機器上您想要代碼所在的目錄,通過 sails 命令列發出一個 new 命令,然後命名您的應用程式:

sails new hello-sails。

    完成這一步後,Sails 將等待片刻,然後回複一條類似這樣的訊息:"Created a new Sails app ‘hello-sails‘!"(如果返回了任何其他資訊,可能您的 Sails.js 安裝某處出錯了。)在目標目錄中(根據應用程式名稱推斷而來),您會看到 Sails.js 產生了許多目錄和檔案。

    一般而言,可以安全地假設建立架構不會有任何問題(只要沒人接觸它),但知道如何在本地運行該應用程式會很有協助。通過一個 "sails lift" 來開始我們的操作。

圖 1. 在本地運行 Sails.js

650) this.width=650;" width="830" height="698" src="http://s3.51cto.com/wyfs02/M00/89/B6/wKioL1gav73DzkpMAAMwxTXKf6s265.png" style="background:url("/e/u261/lang/zh-cn/images/localimage.png") no-repeat center;border:1px solid #ddd;" alt="spacer.gif" title="捕獲.PNG" />

  此外這也正是 ASCII 作品令人印象深刻的顯示形式。更重要的是,這個小型 ASCII 映像確認 Node.js 正成功地在本地機器的連接埠 1337 上運行我們搭建的應用程式。在瀏覽器中訪問它,將出現預設的 Sails.js 網頁,其中包含串連回主要 Sails 首頁和文檔的連結。


本文出自 “瑞航啟程--下一代公司專屬應用程式” 部落格,謝絕轉載!

老web換新枝----Sails.js行動裝置的全新生產力(二)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.