Express 是一個流行的web框架,使用JavsScript實現,執行在node.js環境上。本系列解釋Express的優點、如何設定開發環境、完成常見的web開發和佈署。

前置需求

在開始前你需要了解什麼是伺服器端web程式和什麼是web框架,推薦閱讀伺服器端網站開發第一步。建議了解基本的程式知識和JavaScript,但不需要知道核心概念。

注意: 本網站有許多學習JavaScript應用在客戶端開發的有用資源,如:JavaScript、 JavaScript 指南、 JavaScript 基礎、 JavaScript (learning)。使用Node.js開發伺服器端使用的JavaScript語言與概念和客戶端是一樣的。Node.js提供額外的APIs以支援無瀏覽器環境,例如:建立HTTP服務和讀取檔案系統。但不支援

這份指南將提供一些使用Node.js和Express的資訊以及數個優秀的學習資源。部分連結由How do I get started with Node.js(StackOverflow) and What are the best resources for learning Node.js?(Quora)提供。

指南

Express/Node 介紹
第一篇的系列文章中回答了「什麼是Node」和「什麼是Express?」並概略的說明為什麼Express web框架如此特別。此文章將重點放在主要的功能上,並展示一些Express應用常見的建構模塊(儘管此時你還沒有可供測試的開發環境)
設定 Node (Express) 開發環境
現在你已經了解Express的目的了,接下來繼續說明如何設定和測試 Windows、Linux (Ubuntu)和Mac OS X上的Node/Express開發環境。不管你用的是什麼作業系統,你都能在本文中找到開發Express應用的入門需知。
Express 教學(1): The Local Library website
在第一篇實務教學系列文章中將說明你將會學到什麼?以及提供範例網站local library的概覽,我們將在後續的文章中繼續改進它。
Express 教學(2): 建構網站骨架
本文章展示如何建構網站的骨架,接著你可以自己添加路由、模板/畫面和資料庫。
Express 教學(3): 使用資料庫(以Mongoose為例)
本文簡短的介紹Node/Express如何使用資料庫。接下來展示LocalLibray網站如何透過Mongoose進行資料庫的存取。說明物件綱要(object schema)和模型(models)如何宣告、the main field types和基本驗證。同時簡單的展示幾個讀取資料的主要方法。
Express 教學(4): 路由和控制器
在本教學中,我們將為LocalLibrary網站中的所有資源終端設定“虛擬”處理函數的路由(URL處理代碼)。 完成後,我們將為我們的路由處理程式提供模組化結構,以便我們可以在後續的教學中擴展真正的處理函數。 我們也將了解如何使用Express創建模組化路由。
Express 教學(5): 顯示圖書館的資料
現在已經準備好新增頁面來展示館藏和其他資料了。這些頁面包括一個展示我們有多少種model 型態的首頁、所有models的列表和詳細資料頁面。透過本教學你可以得到從資料庫取得紀錄和使用模板的實務經驗。
Express 教學(6): 使用表單
本教學中展示如何使用Express的插件-Pug來使用HTML Forms,以及如何編寫表單來創造、更新和刪除資料庫的文件。
Express 教學(7): 網站佈署
現在你完成了很棒的LocalLibrary 網站,你希望圖書館的員工和會員可以透過網路讀取它。本教學概略說明如何找到主機來佈署你的網站以及為了使你的網站正式上線所需做的準備。

或許你也想看

在 PWS/Cloud Foundry上安裝LocalLibrary
本文展示如何在Pivotal Web Services PaaS cloud上安裝LocalLibrary ,PWS/Cloud Foundry是一個完整且開源的Heroku替代品,可使用於教學(7)。如果你正在尋找Heroku或其他PaaS的替代品或只是想玩點不同的東西,那PWS/Cloud Foundry絕對值得一試。

新增教學

這是此系列文章的結尾。若你想擴展這份教學,其他有興趣的主題是:

  • Using sessions
  • 使用者認證
  • 使用者授權與權限
  • 測試Express web應用
  • Express web 應用之安全性

And of course it would be excellent to have an assessment task!

文件標籤與貢獻者

此頁面的貢獻者: xxi511, lol-russo
最近更新: xxi511,