Node.js模塊系統
Node.js的模塊系統是將可重用代碼封裝在各種模塊中,減少了應用程式的代碼量,模塊系統提高了開發效率和代碼的可讀性,并且模塊打包代碼的方式不會改變全域作用域,開發人員可以在被載入的模塊檔案中選擇要對外暴露的方法和變數,并且模塊可以發布到npm倉庫中與他人共享,
Node.js主要用于服務器端編程,無須考慮非同步加載的方式,選擇CommonJS規范,按照CommonJS規范要求,模塊必須通過module.exports物件匯出對外暴露的變數或介面,通過require()方法將其他模塊的輸出加載到當前模塊作用域中,
| 在Node.js模塊系統中,獨立的模塊有自己的作用域,其變數、方法等都是對其他檔案不可見的, |
|---|
典型的模塊可以是一個包含exports物件屬性定義的檔案,可將exports看作是module.exports的簡單參考形式,通過在exports物件上指定額外的屬性,可以將方法和物件等添加到模塊的根部,例如,創建一個名為hello.js的檔案,添加代碼來定義模塊,
用module.export和exports匯出模塊的區別是
- 使用 exports 匯出的方法回傳的是模塊函式,可以直接呼叫
- module.exports 匯出的方法回傳的是一個類,需要new實體化為物件之后才可以呼叫
模塊的作業機制

Node.js核心模塊
os模塊
os模塊 包含了作業系統的詳細資訊
const os = require('os');// 匯入os模塊
console.log('作業系統型別:' + os.type());
console.log('作業系統平臺: ' + os.platform());
console.log('系統記憶體總量:' + os.totalmem() + " 位元組");
console.log('空閑記憶體量:' + os.freemem() + " 位元組");
console.log('CPU資訊:');
console.log( os.cpus());
作業系統型別:Windows_NT
作業系統平臺: win32
系統記憶體總量:16505966592 位元組
空閑記憶體量:9022722048 位元組
CPU資訊:
[ { model: 'AMD Ryzen 7 4800H with Radeon Graphics ',
speed: 2895,
times:
{ user: 139234, nice: 0, sys: 222921, idle: 3787859, irq: 85359 } },
util模塊
util模塊 提供的大部分實用工具可用于應用程式與模塊開發
const util = require('util');
console.log(util.inspect(util, { showHidden: true, depth: null }));
util.format('%s:%s', '藍天白云'); // 回傳: 藍天白云:%s
util.format('%s:%s', '環境優美', '綠水青山', '藍天白云'); // 回傳:環境優美:綠水青山 藍天白云
util.format(1, 2, 3); // 回傳:'1 2 3'
path模塊
path模塊用于處理解決檔案與目錄的路徑
path相關屬性
path.delimiter:提供平臺特定的路徑分隔符,Windows上是“;”,POSIX上是“:”,
path.sep:提供平臺特定的路徑分段分隔符,Windows上是“\”,POSIX上是“/”,
path相關方法
path.normalize(path):對路徑進行規范化,并決議“..”和“.” ,
path.dirname(path):回傳路徑的目錄名,類似于UNIX中的dirname命令,
path.basename(path[, ext]):回傳路徑中的最后一部分,可選的ext引數表示檔案擴展名,
path.extname(path):回傳路徑中檔案的后綴名,即路徑中最后一個“.”之后的部分,
path.parse(path):回傳完整路徑的一個物件,
path.format(pathObject):從一個物件表示的路徑回傳一個字串表示的路徑,
path.resolve([...paths]):將一個路徑或路徑片段的序列決議為一個絕對路徑,
path.relative(from, to):回傳從引數from到to的相對路徑(基于當前作業目錄),
path.join([...paths]):使用平臺特定的分隔符將路徑片段序列連接到一起,并規范生成的路徑,
path.isAbsolute(path):判定路徑是否為一個絕對路徑,
url模塊
url模塊 提供了一些實用方法,用于URL處理與決議
url模塊的兩套API
1.Node.js特有的API(傳統的URL API)主要用于兼容已有應用程式,
const url = require('url');
const myURL = url.parse('https://user:pass@sub.host.com:8080/p/a/t/h?query=string#hash')

url地址中的符號:
- ?:是請求地址與請求引數之間的分隔符
- &:引數之間的分隔符
2.新的應用程式應使用WHATWG API
const { URL } = require('url');
const myURL = new URL('https://user:pass@sub.host.com:8080/p/a/t/h?query=string#hash');

相關屬性和方法

querystring模塊
querystring模塊 主要對URL字串進行處理和決議
parse方法 將URL查詢字串決議成鍵值對集合
const {URL,URlSearchParams} = require('url')
const queryString = require('querystring')
const myUrl = new URL('http://localhost:8080/index.html?username=張三&&password=123456')
const str = queryString.parse(myUrl.search.substring(1,myUrl.search.length-1))//parse把字串轉換成鍵值對
console.log(str)

stringify方法 將物件(鍵值對)轉換成URL的查詢字串 實際就是parse方法的逆操作
const queryString = require('querystring')
var obj = {
foo:'bar',
abc:['xyz','123']
}
var str = queryString.stringify(obj) // stringify把鍵值對轉換成字串
console.log(str)

npm包管理器
npm(Node Package Manager)包管理器,npm是整個Node.js社區最流行、支持第三方模塊最多的包管理器,npm用來安裝、共享和發布代碼以及管理專案中的依賴,可以進入npm官網了解更多
npm常用命令
安裝本地包 npm install 包名
確定npm安裝包的版本 npm install 包名@版本號
升級npm npm install npm -g
-g是安裝引數 表示全域安裝
查看安裝資訊
npm list 查看當前目錄下已安裝的包
npm list -g 查看全域安裝
清空npm的本地快取 npm cache clean
包的更新
npm update 包名 升級當前目錄下指定的包
npm update -g 包名 升級全域的包
包的卸載
npm uninstall 包名 卸載dependencies節點下的包 (生產環境)
npm uninstall 包名 --save-dev 卸載devDependencies節點下的包
(開發與測驗環境)
npm uninstall -g 包名 卸載全域的包
package.json檔案的功能
- 列出當前專案所依賴的包,
- 通過語意化版本控制規則指定當前專案所使用的包的版本,
- 實作可重用的構建,更易于與其他開發人員分享包,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/293372.html
標籤:其他
上一篇:Java專案:校園跑腿管理系統(java+Springboot+vue+maven+elementui+mysql)
