90%的人都不知道的Node.js 依賴關係管理(下)

轉載請註明出處:葡萄城官網,葡萄城爲開發者提供專業的開發工具、解決方案和服務,賦能開發者。
原文參考: https://dzone.com/articles/no...

在上篇介紹Node.js依賴關係管理的文章中,咱們介紹了關於Node.js模塊的基礎知識,如何使用module.exports和require方法處理依賴項,以及文件夾依賴項(folder dependencies)的工做方式和工做原理。html

今天咱們將繼續從這一點出發,來了解如何使用這個系統模塊將應用程序分解成多個模塊,以及這樣作的優點和Node.js的工做原理。node

本文內容中說起到了上篇中一些經驗分享,在閱讀本文以前能夠閱讀上篇詳細瞭解。 設計模式

在咱們繼正式開始瞭解學習如何使用多個模塊設置應用程序以前,咱們一塊兒來了解Node.js模塊一些其餘方面的有趣內容。緩存

Node Modules是單例模式嗎

在上一篇文章中,咱們討論了Node.js一次只會加載一個模塊。若是發出請求,Node.js會給出該模塊的緩存副本。所以看起來這些模塊的行爲就像獨生子女。這裏咱們看一個例子,來講明這種狀況。
首先,咱們爲應用程序建立了一個項目,初始化應用程序,並建立了一個文件user.js,以下所示:app

1620729244339.png

接着,在APP.JS中咱們會使用用戶模塊(user module),並按照以下方式使用:函數

2.png

能夠看到咱們建立兩了兩個用戶,只要對其中一個變量作出修改就會影響另外一個變量的內容。咱們必須意識到用戶模塊會被緩存,並在進行另外一個請求的時間內被重用。
接下來咱們把它改爲一個構造函數,看看他如何進行工做工具

構造函數

咱們在上篇內容中介紹了構造函數,實現了user.js的更改:學習

3.png

這一部份內容下面要繼續在app.js中使用:開發工具

4.png

咱們能夠看到兩個不一樣的例子,而且能夠直觀感覺到這之間的不一樣。不用太擔憂不一樣的問題,後文中將會介紹其餘例子和解決方案。
如今咱們開始介紹關於咱們本次的主題,關於如何使用模塊管理應用程序。ui

應用程序構建

咱們開始搭建一個簡單的應用程序基礎,接下來會在講解的過程當中不斷對它進行細化。
咱們已經建立了一些新的文件夾,如今程序中包含的結構以下:

5.png

首先咱們給不一樣的模塊建立了單獨的文件夾。如今已經有的圖書管理文件夾,另外一個用於日誌記錄器文件夾,相似於用戶管理。這樣咱們的每一個模塊都有重點,易於定位和管理。同時在每一個文件夾內都有子文件夾。這裏咱們須要注意文件夾級別的index.js文件,它將做爲模塊的API。
而後在app.js中咱們能夠經過require引用模塊,看到它按照預期工做的工程。注意咱們如何經過require user.js來引用它。
如今咱們來更新代碼內容:

6.png

咱們在圖書管理模塊下建立了幾個項目,在這這模塊中咱們能夠看到book.js遵循常見JavaScript構造函數模式(但與user.js中看到的構造函數示例略有不一樣)。
在相應的index.js文件中有如下代碼:

7.png

index.js做爲模塊的API,讓咱們在app.js中使用它,以下所示:

8.png

將user.js改成與book.js相同的構造函數模式後咱們的程序正按照預期工做。這裏提示一點,咱們可使用Node.js中其餘語言的現有JavaScript內容進行編寫。根據本身的偏好進行選擇就能夠。

下面是代碼user.js重構以後的樣子:

9.png

總結

本文中介紹的應用程序內容都十分基礎,咱們經過學習Node.js依賴性管理的一些基礎知識和一些創建項目結構的經常使用方法來進行了文件模塊管理。
咱們還看到Node.js應用程序中使用JavaScript設計模式的相關知識,而且也經過一些簡單的例子進行說明。

拓展閱讀

瞭解了Node.js的依賴關係管理後,進一步瞭解使用Node包管理器實如今線表格編輯內容。

相關文章
相關標籤/搜索