當前位置:
首頁 > 知識 > 【Node.js系列】Express 介紹

【Node.js系列】Express 介紹

Express 框架

根據官方的介紹,Express 是一個基於 Node.js 平台的極簡、靈活的 web 應用開發框架,可以輕鬆的創建各種 web 或者移動端應用

今天就來簡單的了解一下 Express 框架

安裝

首先安裝 Express ,新建一個工作文件夾,並命名為 myapp ,在此文件夾下進行環境的初始化:

官方推薦的入口文件名為 app.js

當然也可以使用 npm 默認的 index.js 的文件名

接下來安裝 Express

環境準備完成,現在嘗試創建一個 Express 應用

進入 myapp 目錄,新建一個 app.js 的文件,複製如下代碼:

上面的代碼啟動一個服務並監聽從 3000 埠進入的所有連接請求。他將對所有 (/) URL 或 路由 返回 「這是一個 Express 應用」 字元串。對於其他所有路徑全部返回 404

啟動這個應用

Express 應用生成器

Express 應用生成器可以快速創建一個應用的骨架

安裝:

安裝完畢,創建一個名為myapp的應用:

這條命令會在當前目錄下創建 myapp 文件夾,並生成應用骨架

安裝依賴包

依賴安裝完成就可以啟動此app了

Windows 平台在 cmd 內輸入:

Mac 或者 Linux 平台輸入:

然後在瀏覽器中打開http://localhost:3000/ 網址就可以看到這個應用了

當應用首次啟動以後,下次啟動只需要輸入 npm start 就行了

打開 package.json 文件,應用程序的啟動實際上是依賴於這句代碼:

路由

Express 的主要內容有兩個:

先來說路由

路由(Routing)是由一個 URI(或者叫路徑)和一個特定的 HTTP 方法(GET、POST 等)組成的,涉及到應用如何響應客戶端對某個網站節點的訪問。

每一個路由都可以有一個或者多個處理器函數,當匹配到路由時,這個或者這些函數將被執行。

先寫一個簡單的路由

在 routes 目錄下新建一個 orders.js 的文件:

頁面文件寫好以後需要在在app.js中進行掛載,

這兩句最好和其他的路由組件寫在一起

在地址欄輸入對應的 url 即可打開響應的頁面

路由方法實例:

中間件

中間件(Middleware) 是一個函數,它可以訪問請求對象(request object (req)), 響應對象(response object (res)), 和 web 應用中處於請求-響應循環流程中的中間件,一般被命名為 next 的變數。

中間件的分類:

應用級中間件

路由級中間件

錯誤處理中間件

內置中間件

第三方中間件

應用級中間件

應用級中間件綁定到 app 對象 使用 app.use() 和 app.METHOD(), 其中, METHOD 是需要處理的 HTTP 請求的方法,例如 get , put , post 等

在執行完一個中間件之後,next() 會使程序繼續執行下一個中間件,如果沒有 next(),程序則不會往下執行。

在向頁面發送內容時,程序也不會往下執行

我們也可以裝在一組中間件

路由級中間件

路由級中間件和應用級中間件一樣,只是它綁定的對象為 express.Router()。

在上一節中,我們自己寫的 orders.js ,其內容就是一個路由級中間件

路由級使用 router.use() 或 router.VERB() 載入。

上述在應用級創建的中間件系統,可通過如下代碼改寫為路由級:

錯誤處理中間件

錯誤處理中間件和其他中間件定義類似,只是要使用 4 個參數,而不是 3 個,其簽名如下: (err, req, res, next)。

在其他 app.use() 和路由調用後,最後定義錯誤處理中間件,比如:

在我們創建的這個app中,app.js 內的錯誤處理中間件是這樣寫的:

錯誤中間件執行時,會調用 views 目錄下的 error.jade 文件,在頁面中列印詳細的錯誤信息

內置中間件

express.static(root,[options])

express.static 是 Express 唯一內置的中間件。它基於 serve-static,負責在 Express 應用中提託管靜態資源。

在 app.js 文件內也可以找到這個內置中間件

詳細信息參閱官方文檔:www.expressjs.com.cn/guide/using-middleware.html

第三方中間件

通過使用第三方中間件從而為 Express 應用增加更多功能。

安裝所需功能的 node 模塊,並在應用中載入,可以在應用級載入,也可以在路由級載入。

實際上,我們創建的這個應用已經引入了兩個第三方的中間件,在 package.json 中就可以找到

其中 body-parser 和 cookie-parser 就是兩個第三方中間件

模板引擎

Express 默認的模板引擎是 jade 。現在 jade 已經更名為 pug ,沒錯,似李,巴扎嘿!

pug 的語法請參閱 pug 文檔:

https://pug.bootcss.com/api/g…

我們在 views 目錄下創建一個 orders.jade 的文件

然後使用路由渲染它:

在向主頁請求時,orders.jade 會被渲染為 HTML 文檔

進程管理器

在編寫程序時,我們發現,每次更改文件之後,都需要在命令行內停止當前的服務,然後輸入 npm start ,很麻煩。我們需要一款自動刷新的工具

這裡介紹一下 pm2

安裝:

安裝完畢,運行我們的程序吧:

還記得我們之前說的 npm start 的啟動路徑沒

當顯示 status 為 online 時,說明程序啟動成功

現在可以打開http://localhost:3000 就可以看到運行的程序了

從命令行中我們可以看出我們的 app 名稱, id ,狀態,內存和 cpu 佔用,監視狀態等信息

啟動完成之後我們就可以根據我們程序的id進行控制了

下次啟動可以輸入

別忘了 –watch ,沒有它,程序是無法自動刷新的

停止應用:

重啟

顯示程序信息

刪除程序

查看程序列表

好了,這次關於 Express 的介紹就到這裡了,謝謝大家


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 JavaScript 的精彩文章:

2018屆互聯網校招高薪清單流出,你怎麼看?
移動端 Web頁input 控制軟鍵盤
2018秋招前端面經總結

TAG:JavaScript |