深入理解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)用名??梢院苋菀椎牡玫较嚓P(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)文章
教你從零開始在Windows系統(tǒng)上搭建一個(gè)node.js后端服務(wù)項(xiàng)目
這篇文章詳細(xì)介紹了如何在Windows環(huán)境下搭建一個(gè)Node.js項(xiàng)目并使用Express框架,包括安裝Node.js、配置環(huán)境、創(chuàng)建項(xiàng)目、安裝Express、編輯代碼、運(yùn)行項(xiàng)目、集成Nodemon實(shí)現(xiàn)熱部署等步驟2024-11-11
node.js使用http模塊創(chuàng)建服務(wù)器和客戶端完整示例
這篇文章主要介紹了node.js使用http模塊創(chuàng)建服務(wù)器和客戶端,結(jié)合完整示例形式分析了node.js基于http模塊實(shí)現(xiàn)客戶端與服務(wù)器端交互的相關(guān)操作技巧,需要的朋友可以參考下2020-02-02
如何構(gòu)建一個(gè)?NodeJS?影院微服務(wù)并使用?Docker?部署
微服務(wù)是一個(gè)單獨(dú)的自包含單元,與其他許多單元一起構(gòu)成一個(gè)大型應(yīng)用程序,這篇文章主要介紹了如何構(gòu)建一個(gè)NodeJS影院微服務(wù)并使用Docker部署,在這個(gè)系列中,將構(gòu)建一個(gè) NodeJS 微服務(wù),并使用 Docker Swarm 集群進(jìn)行部署,需要的朋友可以參考下2023-08-08
Windows中徹底刪除Node.js環(huán)境(以及npm)的方法
本文詳細(xì)介紹了如何在Windows電腦中徹底刪除Node.js環(huán)境,包括查找安裝路徑、使用控制面板卸載以及手動(dòng)刪除殘留文件夾2025-01-01
使用nodejs+express實(shí)現(xiàn)簡(jiǎn)單的文件上傳功能
這篇文章主要介紹了使用nodejs+express完成簡(jiǎn)單的文件上傳功能,需要的朋友可以參考下2017-12-12
詳解Node.js利用node-git-server快速搭建git服務(wù)器
本篇文章主要介紹了詳解Node.js利用node-git-server快速搭建git服務(wù)器,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2017-09-09
Node.js操作Firebird數(shù)據(jù)庫(kù)教程
這篇文章主要為大家分享了Node.js操作Firebird數(shù)據(jù)庫(kù)教程,思路清晰便于大家理解,感興趣的小伙伴們可以參考一下2016-03-03

