1. 程式人生 > >Nodejs中關於模塊的總結

Nodejs中關於模塊的總結

require http 編寫 erro cart ins ech 自動創建 .com

關於Nodejs中的模塊

概念

Nodejs在ECMAScript的基礎上擴展並封裝了許多高級特性,如文件訪問、網絡訪問等,使得Nodejs成為一個很好的Web開發平臺。基於Nodejs這個平臺將Web開發常用的一些功能進行封裝,稱為模塊。

1.系統模塊

1. 模塊被加載後才能使用,Nodejs提供了全局的函數require加載模塊。 1、os模塊 獲取當前操作系統信息 2、fs模塊 文件讀寫操作 3、path模塊 路徑處理

2. require加載模塊路徑

相對路徑: 如 ./ 或 ../

絕對路徑: 如 E:\nodejs\02day\4-code\23cart 或 / (類unix系統)

直接寫模塊名會被當成系統模塊或加載node_modules目錄的模塊。

2.文件模塊( 模塊也被稱為包 )

npm 是第三方模塊管理管理工具

是全局安裝的 在任何地方打開命令行 就可以使用 npm config list 可以查看配置信息

使用npm可以安裝、卸載、發布模塊。

1、安裝

  a) 本地安裝,需要網絡並且將下載的模塊放到執行安裝命令的目錄,並且會自動創建node_modules 存放下載的模塊,如果上一級目錄已經存在 node_modules目錄,則會安裝至上一級目錄.
      npm install 模塊名稱
  b) 全局安裝,安裝到默認c盤(C:\Users\(自己的用戶名)\AppData\Roaming\npm\node_modules)
      npm install 模塊名稱 -g
  c) 關於本地安裝還是全局安裝 要根據使用方式     (模塊文檔 https//www.npmjs.com )
  如果是全局安裝   一般都是提供一個命令行進行使用 如 lessc npm
  如果是本地安裝   一般都是使用 require()方法來使用
  d) 默認下地址 https//registry.npmjs.org
  通過 npm config set registry https://registry.npm.taobao.org
  從淘寶鏡像庫 下載 速度回快 5到10分鐘 更新一次鏡像庫

2、卸載

  a) 本地卸載
    npm uninstall 模塊名稱
  b) 全局卸載
    npm uninstall 模塊名稱 -g
    卸載也可以直接刪除文件

3、發布模塊

  a) 註冊用戶,註冊npm賬號

  b) 編寫模塊

  c) 發布模塊

  在模塊目錄執行 npm login,根據提示輸入用戶名、密碼、郵箱進行登錄,然後執行npm publish完成發布。

3.自己封裝模塊

  1. 建一個文件夾 即為模塊名稱

  2. 裏面的文件

    add.js   //功能塊
    index.js //入口文件
    modify.js //另一個功能
    package.js //配置文件 此文件不用創建 可以用 npm init -y(一路yes)

    package文件內容

    {
      "name": "itcast40", //模塊名 默認為文件夾名字
      "version": "1.0.0", //版本號
      "description": "", //描述
      "main": "index.js", //配置模塊的入口
      "scripts": {
        "test": "echo \"Error: no test specified\" && exit 1"
      },
      "author": "", // 作者
      "license": "ISC"  
    }
  1. module.exports 對象 實現向模塊外部,返回數據的方式

    Nodejs 為了簡化模塊內部方法或屬性的公開,還提了exports 也可以實現與 module.exports 相類似(不是相同)的作用但是 不能傳出對象

    例子:

    console.log(‘我是一個文件‘);
    let name = ‘我這個屬性想在其他文件輸出‘;
    ?
    function sayHi() {
        console.log(‘我這個方法想在其他文件輸出‘);
    }
        module.exports.sayHi = sayHi;
        module.exports.abc = name;//可以使用
        
        
        exports.sayHi = sayHi;
        exports.abc = name;//可以使用
    ?
        module.exports = {
            sayHi: sayHi,
            abc: name
        }//可以使用
        
        exports = {
            sayHi: sayHi,
            abc: name
        }//不可以使用  
        因為 Node 只是做了如下操作 exports = module.exports 在使過程,exports 不能直接被賦值一個對新對象 因為這樣會斷開與 module.exports 的聯系
        那麽也不能實現向外部模塊公開內部數據的功能了。

Nodejs中關於模塊的總結