深入理解Node內(nèi)建模塊和對(duì)象
在 node
核心中有些內(nèi)建模塊,使用這些模塊可以操作系統(tǒng),文件和網(wǎng)絡(luò)。打開 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)聽 HTTP
請(qǐng)求的網(wǎng)絡(luò)服務(wù)的 HTTP
、還有操作系統(tǒng)的 OS
模塊、還有 path
,操作路徑、 process
可以返回我們現(xiàn)在正在處理的信息、 QueryString
用來創(chuàng)建 http
服務(wù)的時(shí)候非常有用。 stream
可以用來操作數(shù)據(jù)流,后面需要的時(shí)候也可以學(xué)到其它的一些模塊。
首先我們先來看看 path
模塊,在文檔中可以看到這個(gè)模塊所有的函數(shù)。
往下拉也可以看到針對(duì)模塊的使用作出的說明。
回到編輯器,引入 path
模塊
這就是 path
對(duì)象,有很多有用的屬性,比如 root
根目錄路徑, dir
應(yīng)用的文件夾路徑, base
應(yī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
獲取開機(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
是單線程的,同步的方法過多,會(huì)造成阻塞,從而無法服務(wù)眾多客戶端。
這里以同步方法是為了方便理解。
我們得到了一個(gè)字符串?dāng)?shù)組,是這個(gè)文件夾中的文件。 好了,我們嘗試再使用異步的方法看看,第一個(gè)參數(shù)是路徑,第二個(gè)參數(shù)是回調(diào)函數(shù), node
會(huì)在異步操作完成后自動(dòng)執(zhí)行函數(shù)。
得到的結(jié)果和同步是一樣的,那如果我更改下路徑會(huì)發(fā)生什么的?
提示沒有這樣的文件或是目錄。
所以在 node
中,能不用同步方法就不用,而是用異步。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- node使用promise替代回調(diào)函數(shù)
- async/await與promise(nodejs中的異步操作問題)
- NodeJS的Promise的用法解析
- NodeJS中利用Promise來封裝異步函數(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訪問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í)通訊及離線推送的方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(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)景及處理方法,文中通過實(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的具體使用方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-02-02Node.js文件系統(tǒng)fs擴(kuò)展fs-extra說明
這篇文章主要介紹了Node.js文件系統(tǒng)fs擴(kuò)展fs-extra說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-08-08Mongoose實(shí)現(xiàn)虛擬字段查詢的方法詳解
這篇文章主要給大家介紹了關(guān)于Mongoose實(shí)現(xiàn)虛擬字段查詢的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面跟著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2017-08-08