1. 程式人生 > >模塊化方式構建Node.js應用程序

模塊化方式構建Node.js應用程序

所有 改變 支持 don ash ogg 運行 xlsx 服務器

如今,幾乎所有的Web服務或集成都是在Node.js運行時上完成的。Node.js是一個具有很多社區支持的靈活平臺。我們甚至可以直接從Node.js創建xlsx,docx或pdf文檔。所有主流雲平臺都可以使用Node.js作為其1級語言。

技術分享圖片

模塊化

Node.js通過設計,可以使用node_modules結構來實現模塊化。所有必需的模塊都存儲在node_modules目錄中,並且我們可以在代碼中的任何地方調用這些模塊。

而現在,我們將在應用程序代碼中使用這種模塊化的方式。我看到的大多數應用程序都包含一個lib文件夾,其中存儲了所有的JS文件。這些js文件使用相對路徑導入所需區域。

const db = require("../db/")
const logging = require ("../../logging")

這種方法的主要問題是當我們改變服務文件的路徑時,到DB的路徑也應該改變。此外,格式是不可讀的。我們將對文件的真實性感到困惑。

解決方案

一個更好的方法是將應用程序設計為模塊,例如DB,日誌記錄,錯誤等。假設你的應用程序名稱為cms,那麽使用scope可以更容易地表示模塊。

require("@cms/db")

你可以單獨開發模塊,並將它們發布到任何NPM服務器(公共/私有),並像任何其他模塊一樣使用它們。

如果你的應用程序需要日誌記錄模塊:

npm install --save @cms/logging

如果你不想將應用程序分成幾個部分,那麽還有另一種方法。

更優的方式

將所需的模塊保存在一個單獨的文件夾中。假設有“@cms”。為每個模塊使用單獨的文件夾,讓模塊有一個單獨的package.json。這樣就可以成為一個有效的Node模塊。

技術分享圖片

技術分享圖片

技術分享圖片

模塊的package.json將如下所示

{
  "name": "@cms/db",
  "version": "1.0.1",
  "description": "db module for CMS Application",
  "main": "index.js",
  "dependencies":{
"mysql" : "latest"
  }
}

模塊準備好了之後,就可以做一些腳本了。在“scripts”文件夾中添加install.js。

let fs = require(‘fs‘)
console.log(‘Creating symlinks ...‘)
if (fs.existsSync(‘node_modules/@cms‘)) {
    console.log(‘link exists already ‘)
} else {
    let source = ‘../@cms‘
    console.log(`creating link for ${source}`)
    fs.symlinkSync(source, ‘node_modules/@cms‘, ‘junction‘)
    console.log(‘done‘)
}

將此腳本添加到main package.json。

{
  "name": "CMSApplication",
  "version": "1.0.1",
  "description": "Sample CMS Application",
  "main": "index.js",
  "scripts": {
    "install": "node scripts/install.js",
    "start": "node index.js"
  },
  "dependencies":{
"express" : "latest"
  }
}

每當你執行npm安裝時都會執行該腳本。因此,一旦所有其他節點模塊被定義並且依賴關系被安裝好了之後,它將創建從@cms文件夾外部到@cms文件夾內部node_modules的鏈接。所以你對外部@cms文件夾所做的任何更改都將反映到文件夾內部的node_modules。

技術分享圖片

你可以看到我們對@cms安裝了符號鏈接。這不是一個快捷文件,不是在Linux中使用“ln”創建的硬鏈接。

在@cms內部,你可以看到我們在外部@cms文件夾中定義的模塊。

這樣你就實現了模塊化。“@cms”文件夾是你源代碼的一部分。然後你可以按正常方式導入所需的模塊。

const {logger} = require("@cms/logging")
logger.info("Welcome to CMS Application")

當你希望應用程序執行時,運行“npm install”,然後運行“npm start”。

這種方法有助於使應用程序更加模塊化和可擴展。歡迎在評論中講述你的看法。

http://wfhuamei.com/
http://yong-elec.com/
http://tlwhcy.com/
http://ipumei.com/
http://qzcgyy.net/
http://cqtgzc.com/
http://myjjcn.com/
http://booioo.net/
http://gdlsly.com/
http://chinasstk.com/
http://metdmr.com/
http://syqixun.com/
http://shkuju.com/
http://rongju55.com/
http://yn698.com/
http://huabaoshicai.cn/
http://hshyin.com/
http://midea.ha.cn/
http://71cf.cn/
http://kmlbzs.com/

模塊化方式構建Node.js應用程序