Commonjs規範與模塊化

在以前的學習中咱們使用require()來引入咱們須要的包,這其實就是模塊化,各模塊相互獨立,能夠經過某種方式引入別的模塊。而這些引入方式都是遵循必定的規範的,這就是CommonJS規範。java

1、Commonjs規範

目前JS標準定義的API是爲了構建基於瀏覽器的應用程序,沒有制定一個用於更普遍的應用程序的標準庫。CommonJS規範致力於提供一個相似java、python等語言的標準庫,使JS能夠開發服務器端應用程序、命令行工具、桌面圖形界面應用程序node

2、Nodejs中的模塊化

Node應用程序由各類模塊組成,採用CommomJS模塊規範。python

一、模塊分類

Nodejs中模塊分爲兩類,一類是由Node提供的核心模塊;另外一類是由用戶編寫的文件模塊。web

核心模塊

核心模塊在Node源代碼的編譯過程當中被編譯進了二進制文件。在Node進程啓動時,核心模塊會被直接加載進內存,因此在引入這些核心模塊時,文件定位和編譯執行這兩步能夠省略。而且在路徑分析中優先判斷,因此它的加載速度是最快的。HTTP模塊、URL模塊、fs模塊都是Node內置的核心模塊,能夠直接引用。數據庫

文件模塊

文件模塊則是在運行時動態加載,須要完整的路徑分析、文件定位、編譯執行過程,速度相比核心模塊稍微慢一些,可是用處很是多。這些模塊須要咱們本身定義,下面咱們來看一下自定義模塊。npm

二、自定義模塊

咱們把公共的功能抽成一個單獨的js文件做爲一個模塊,默認狀況下外部是沒法訪問這個模塊裏的方法或者屬性。若是想讓外部訪問模塊內的屬性和方法,必須在模塊裏經過exports或者module.exports暴露須要被外部訪問的屬性和方法。json

在須要使用這些模塊的文件中經過require引入該模塊。這樣就可使用這個模塊裏暴露的屬性和方法。瀏覽器

定義模塊,暴露屬性或方法服務器

//tools.js

var tools = {
    name:'Node'
    sayHello:function () {
        return 'Hello NodeJs';
    }
}

//暴露屬性或方法
//module.exports = tools;
    
exports.add = tools.name;
exports.sayHello = tools.sayHello;

在別的文件裏引入模塊模塊化

//引入自定義模塊
var tools = require('./tools');

//使用該模塊裏暴露的方法
tools.name;            //  Node
tools.sayHello();      //  Hello NodeJs

三、第三方模塊

Nodejs中也可使用第三方模塊,Nodejs中第三方模塊由包組成,包又包含若干模塊,經過包來對一組具備相互依賴關係的模塊進行統一管理。

徹底符合CommonJs規範的包目錄通常包含以下這些文件:

  • package.json:包描述文件
  • bin:用於存放可執行二進制文件的目錄
  • lib:用於存放Javascript代碼的目錄
  • doc:用於存放文檔的目錄

咱們使用npm安裝第三方模塊

npm install silly-datetime -Save

安裝完npm後咱們就可使用這個包了:

var sd = require('silly-datetime');
sd.format(new Date(),'YYYY-MM-DD-HH:mm');

3、npm

一、什麼是npm

npm全稱Node Package Manager,是Node.js的包管理器。可使用它在Node.js應用程序中建立、共享和重用模塊。

模塊就是可重用的代碼庫。好比用來與數據庫交互的模塊、支持web開發的模塊以及經過web套接字協助通訊的模塊。

二、使用npm安裝模塊

安裝模塊有兩種方式:本地安裝、全局安裝

本地安裝

本地安裝模塊意味着模塊會被安裝在項目內名爲node_modules的文件夾中,並且它只能夠在該項目中使用。這是推薦的安裝方式。

使用下列命令開始安裝模塊:

npm install [module_name]

這個命令意思是向服務器發送一個請求,將該模塊的最新版本下載到計算機上。當模塊下載成功後會有下列語句輸出:

module_name@1.2.0 ./node_modules/module_name

這行輸出告訴咱們模塊的名稱、版本以及下載的位置。

全局安裝

全局安裝意味着該模塊可在系統的任意地方使用。其餘與本地安裝一致。與本地安裝稍有不一樣的是全局安裝須要加上-g:

npm install [module_name] -g

三、使用模塊

要在Node.js應用程序中使用模塊,必須將其引入應用程序中,引入方法以下:

var module = require('module');

咱們把它賦值給一個變量,以便於在之後使用這個模塊。

四、查找模塊文檔

有時候咱們須要查看模塊文檔,可使用一下命令:

npm docs [module_name]

這個命令必須在Node.js項目文件夾的根目錄下運行,而且該模塊已經下載到了node_modules文件夾下。

五、使用package.json指定依賴關係(dependency)

npm容許開發人員使用package.json文件來指定在應用程序中要使用的模塊,而且經過單個命令來安裝它們:

npm install

這樣作的好處有下列三點:

  • 無需一個個安裝模塊
  • 其餘開發人員能夠容易的安裝你的應用程序
  • 應用程序的依賴存儲在單一的地方

一個最小的package.json文件是這樣的:

{
    "name":"example1",
    "version":"0.0.1",
    "dependencies":{
        "underscore":"~1.2.1"
    }
}
相關文章
相關標籤/搜索