深入理解Node內(nèi)建模塊和對(duì)象
在 node
核心中有些內(nèi)建模塊,使用這些模塊可以操作系統(tǒng),文件和網(wǎng)絡(luò)。打開(kāi) nodejs.org
官網(wǎng)可以看到文檔中對(duì)應(yīng)版本的 API
,推薦使用穩(wěn)定版。
當(dāng)然也不全是模塊,比如 console
、 buffer
是對(duì)象,這里簡(jiǎn)單的講下一些常用的內(nèi)建模塊。
比如有操作文件系統(tǒng)的 filename
、可以創(chuàng)建監(jiān)聽(tīng) HTTP
請(qǐng)求的網(wǎng)絡(luò)服務(wù)的 HTTP
、還有操作系統(tǒng)的 OS
模塊、還有 path
,操作路徑、 process
可以返回我們現(xiàn)在正在處理的信息、 QueryString
用來(lái)創(chuàng)建 http
服務(wù)的時(shí)候非常有用。 stream
可以用來(lái)操作數(shù)據(jù)流,后面需要的時(shí)候也可以學(xué)到其它的一些模塊。
首先我們先來(lái)看看 path
模塊,在文檔中可以看到這個(gè)模塊所有的函數(shù)。
往下拉也可以看到針對(duì)模塊的使用作出的說(shuō)明。
回到編輯器,引入 path
模塊
這就是 path
對(duì)象,有很多有用的屬性,比如 root
根目錄路徑, dir
應(yīng)用的文件夾路徑, base
應(yīng)用的名稱(chēng), ext
文件的后綴名, name
除去后綴名的應(yīng)用名。可以很容易的得到相關(guān)的字符串。
關(guān)于如何使用 OS
模塊獲取當(dāng)前操作系統(tǒng)的信息。在文檔中可以看到這個(gè)模塊所有的函數(shù)。
比如 freemem
,會(huì)返回當(dāng)前可用的內(nèi)存有多少。 totalmem
返回總內(nèi)存的大小。 uptime
獲取開(kāi)機(jī)時(shí)間等等。
在 node
之前,用 JavaScript
是得不到這些信息的, JavaScript
被設(shè)計(jì)為只能操作 window
或者 document
對(duì)象,而不能獲取操作系統(tǒng)的信息。
fs
模塊是我們之后用到的非常多的一個(gè),官方的文檔中列出了很多的操作文件和路徑的方法。
這里列舉一個(gè)例子看看如何在 node
中操作,其余的按照文章的方法一一嘗試學(xué)習(xí)就好。這里需要注意的是在實(shí)際編程環(huán)境里, fs
對(duì)象里有很多的同步或者阻塞的方式,和異步或者非阻塞的方法。盡量避免使用同步方法,使用異步方法。因?yàn)?node
是單線程的,同步的方法過(guò)多,會(huì)造成阻塞,從而無(wú)法服務(wù)眾多客戶(hù)端。
這里以同步方法是為了方便理解。
我們得到了一個(gè)字符串?dāng)?shù)組,是這個(gè)文件夾中的文件。 好了,我們嘗試再使用異步的方法看看,第一個(gè)參數(shù)是路徑,第二個(gè)參數(shù)是回調(diào)函數(shù), node
會(huì)在異步操作完成后自動(dòng)執(zhí)行函數(shù)。
得到的結(jié)果和同步是一樣的,那如果我更改下路徑會(huì)發(fā)生什么的?
提示沒(méi)有這樣的文件或是目錄。
所以在 node
中,能不用同步方法就不用,而是用異步。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- node使用promise替代回調(diào)函數(shù)
- async/await與promise(nodejs中的異步操作問(wèn)題)
- NodeJS的Promise的用法解析
- NodeJS中利用Promise來(lái)封裝異步函數(shù)
- nodejs中簡(jiǎn)單實(shí)現(xiàn)Javascript Promise機(jī)制的實(shí)例
- node.js中使用q.js實(shí)現(xiàn)api的promise化
- 基于promise.js實(shí)現(xiàn)nodejs的promises庫(kù)
- Nodejs學(xué)習(xí)筆記之Global Objects全局對(duì)象
- 用nodejs訪問(wèn)ActiveX對(duì)象,以操作Access數(shù)據(jù)庫(kù)為例。
- 詳解nodeJS之二進(jìn)制buffer對(duì)象
- Node.js 基礎(chǔ)教程之全局對(duì)象
- node.js Promise對(duì)象的使用方法實(shí)例分析
相關(guān)文章
在Node.js下運(yùn)用MQTT協(xié)議實(shí)現(xiàn)即時(shí)通訊及離線推送的方法
這篇文章主要介紹了在Node.js下運(yùn)用MQTT協(xié)議實(shí)現(xiàn)即時(shí)通訊及離線推送的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-01-01socket.io斷線重連的幾種場(chǎng)景及處理方法
Socket.IO是一個(gè)庫(kù),可用于在瀏覽器和服務(wù)器之間進(jìn)行實(shí)時(shí),雙向和基于事件的通信,下面這篇文章主要給大家介紹了關(guān)于socket.io斷線重連的幾種場(chǎng)景及處理方法,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-03-03使用Nodejs連接mongodb數(shù)據(jù)庫(kù)的實(shí)現(xiàn)代碼
這篇文章主要介紹了使用Nodejs連接mongodb數(shù)據(jù)庫(kù)的實(shí)現(xiàn)代碼,需要的朋友可以參考下2017-08-08Nestjs自定義注解實(shí)現(xiàn)接口權(quán)限控制詳解
這篇文章主要為大家介紹了Nestjs自定義注解實(shí)現(xiàn)接口權(quán)限控制詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-12-12簡(jiǎn)單了解node npm cnpm的具體使用方法
這篇文章主要介紹了簡(jiǎn)單了解node npm cnpm的具體使用方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-02-02Node.js文件系統(tǒng)fs擴(kuò)展fs-extra說(shuō)明
這篇文章主要介紹了Node.js文件系統(tǒng)fs擴(kuò)展fs-extra說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-08-08Mongoose實(shí)現(xiàn)虛擬字段查詢(xún)的方法詳解
這篇文章主要給大家介紹了關(guān)于Mongoose實(shí)現(xiàn)虛擬字段查詢(xún)的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面跟著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。2017-08-08