JavaScript >> Javascript 文檔 >  >> Node.js

Sails.js 101

Sails.js (GitHub) 是一種約定優於配置的框架。這意味著它在哲學上類似於 Ruby on Rails。 Sails.js 是真正的 MVC 框架,不像 Express.js,它依賴於開發人員添加像 Mongoose 這樣的 ORM。 Sails.js 使用 Waterline ORM。

開始使用 Sails.js:

$ npm -g install [email protected]

這將為您提供sails 命令,您可以通過以下方式查看可用選項列表:

$ npm sails -h

讓我們使用 new 生成應用程序的命令(.../sails ):

$ sails new sails

應用程序生成後,使用 lift 啟動它 :

$ cd sails
$ sails lift

現在,如果您訪問 http://localhost:1337,您將看到一個 Sails.js 頁面,其中包含一些說明和鏈接(圖 1)。

圖 1. 帶有一些說明和鏈接的默認 Sails.js 頁面。

要生成資源,可以使用以下命令:

  • $ sails generate api NAME :構建新模型和控制器 api/models/NAME.js and api/controllers/NAMEController.js
  • $ sails generate model NAME [attribute1:type1, attribute2:type2 ... ] :構建新模型 api/models/NAME.js 帶有屬性(可選)。
  • $ sails generate controller NAME [action1, action2, ...] :構建一個新的控制器 api/controllers/NAMEController.js 帶有操作(可選)。
  • $ sails generate adapter NAME :構建一個新的適配器 api/adapters/NAME .
  • $ sails generate generator NAME :構建一個新的生成器。

每個控制器都被構造為帶有方法的模塊。這些方法是動作,例如 /controller/action .每個動作都有一個請求和響應。他們的論點繼承自他們的 Express.js 同行。為了說明這一點,讓我們創建一個控制器並使用 Express.js 方法添加一些自定義代碼 -response.json()response.redirect() .

首先,運行這個命令:

$ sails generate api user

打開新創建的文件.../sails/api/controllers/UserController.js .在其中,添加兩個將輸出當前時間的動作“json”和將利用重定向的“buy-oauth”:

module.exports = {
  json: function (request, response) {
    response.json({time: new Date()})
  },
  'buy-oauth': function (request, response) {
    return res.redirect('https://gum.co/oauthnode');
  }
};

如果你去http://localhost:1337/user/json,你會看到:

{   "time": "2014-09-09T14:59:28.377Z" }

如果你去 http://localhost:1337/user/buy-oauth ,您將被重定向到 Node.js 的 OAuth 簡介 [webapplog.com, 2014] 頁面。

所以這裡的結論是,對於已經熟悉 Express.js 的人來說,在 Sails.js 中編寫控制器會很容易。控制器是視圖和模型之間的中介,通常包含大量代碼和邏輯!有關 Sails.js 概念及其文檔的更多信息,請訪問 http://sailsjs.org/#/documentation/concepts 和 http://irlnathan.github.io/sailscasts。

[旁注]

閱讀博客文章很好,但觀看視頻課程更好,因為它們更具吸引力。

許多開發人員抱怨 Node.js 上缺乏負擔得起的高質量視頻材料。觀看 YouTube 視頻會讓人分心,花 500 美元購買 Node 視頻課程很瘋狂!

去看看 Node University,它有關於 Node 的免費視頻課程:node.university。

[旁注結束]

PS:本文來自我的新書Pro Express.js。


Tutorial JavaScript 教程
  1. 使用 Vue.js 和 Flask 的單頁應用程序:使用 Vuex 進行狀態管理

  2. 在瀏覽器中生成 HTML 元素的 PDF

  3. 我製作了 Listly:您的所有列表都集中在一個地方!

  4. 如何為反應打字稿項目設置 eslint

  5. 完全剪切並粘貼元素

  6. Vanilla JavaScript:有沒有辦法在一個語句中切換多個 CSS 類?

  7. 什麼是數字產品設計?

  1. React 中的 Hooks 簡介

  2. 使用 Context API 響應全局狀態管理(沒有 Redux)

  3. 為 SnackJS 創建插件

  4. Android - 有沒有辦法通過 Android 瀏覽器或 Dolphin HD 使用 PC 瀏覽器書籤?

  5. 如何:使用過濾器反應表

  6. 如何在 firefox/firebug 中檢查文件是否已壓縮

  7. 角色=按鈕是什麼意思?

  1. 我們可以在二維碼中保存/存儲多少數據/信息?

  2. 為您的作品集創建一個很酷的打字動畫

  3. 在單頁應用程序中使用 PKCE 了解 OAuth 2 (2020)

  4. Vue 中的條件類