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.自己封裝模塊
-
建一個文件夾 即為模塊名稱
-
裏面的文件
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" }
-
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中關於模塊的總結