最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

node.js基礎(chǔ)知識(shí)匯總

 更新時(shí)間:2020年08月25日 09:45:34   作者:小蔥  
這篇文章主要介紹了node.js基礎(chǔ)知識(shí),幫助大家更好的理解和學(xué)習(xí)node.js,感興趣的朋友可以了解下

一、node介紹

1.node的應(yīng)用場(chǎng)景

  • 工具類 gulp webpack vite (node可以讓js運(yùn)行在服務(wù)器)
  • 可以做服務(wù)端 優(yōu)化ssr
  • 可以做中間層 (解決跨域問(wèn)題,格式化數(shù)據(jù))

2.性能

  • 非阻塞
  • 異步I/O(當(dāng)這個(gè)方法調(diào)用完畢后不會(huì)立即返回結(jié)果)
  • 事件驅(qū)動(dòng)(發(fā)布訂閱模式)

3.優(yōu)勢(shì)

在Java、PHP或者.NET等服務(wù)器語(yǔ)言中,會(huì)為每一個(gè)客戶端連接創(chuàng)建一個(gè)新的線程。而每個(gè)線程需要耗費(fèi)大約2MB內(nèi)存。也就是說(shuō),理論上,一個(gè)8GB內(nèi)存的服務(wù)器可以同時(shí)連接的最大用戶數(shù)為4000個(gè)左右。要讓web應(yīng)用程序支持更多的用戶,就需要增加服務(wù)器的數(shù)量,而web應(yīng)用程序的硬件成本當(dāng)然就上升了。

NodeJs不為每個(gè)客戶連接創(chuàng)建一個(gè)新的線程,而僅僅使用一個(gè)線程。當(dāng)有用戶連接了,就觸發(fā)一個(gè)內(nèi)部事件,通過(guò)非阻塞I/O、事件驅(qū)動(dòng)機(jī)制,讓Node.js程序宏觀上也是并行的。使用Node.js,一個(gè)8GB內(nèi)存的服務(wù)器,可以同時(shí)處理超過(guò)4萬(wàn)用戶的連接。

二、node的全局對(duì)象和模塊

1.global

global是全局對(duì)象,可以直接訪問(wèn)里面的屬性

里面有:

  • Buffer
  • process
  • setInterval,setTimeout,setImmediate
  • console
  • queueMicrotask

2.模塊

  • __dirname
  • __filename
  • exports
  • module
  • require()

三、process常用屬性或方法

process.platform 系統(tǒng)

process.kill 殺進(jìn)程

process.exit 退出進(jìn)程

process.nextTick node中的微任務(wù) 當(dāng)前執(zhí)行棧的底部 優(yōu)先級(jí)比promise高

process.cwd() 當(dāng)前的工作目錄,是可變的,看命令在哪里執(zhí)行 (__dirname當(dāng)前文件所在的文件夾,此路徑不會(huì)發(fā)生變化)

process.env 環(huán)境變量(可以set,例如process.env.NODE_ENV)

process.argv 執(zhí)行時(shí)所帶的參數(shù)

四、事件環(huán)機(jī)制

重要的三個(gè)階段

timer 存放定時(shí)器

poll 輪詢處理I/O回調(diào)

check setImmediate

如果在 I/O 回調(diào)的方法里,setImmediate優(yōu)先于 timer 執(zhí)行

應(yīng)為 poll 接下來(lái)是 check

nextTick 算是一個(gè)微任務(wù),不在事件環(huán)中

在node 11 以上 宏任務(wù)與微任務(wù)的執(zhí)行順序與瀏覽器一樣

五、Buffer

JavaScript 語(yǔ)言自身只有字符串?dāng)?shù)據(jù)類型,沒(méi)有二進(jìn)制數(shù)據(jù)類型。

但在處理像TCP流或文件流時(shí),必須使用到二進(jìn)制數(shù)據(jù)。因此在 Node.js中,定義了一個(gè) Buffer 類,該類用來(lái)創(chuàng)建一個(gè)專門(mén)存放二進(jìn)制數(shù)據(jù)的緩存區(qū)。在 Node.js 中,Buffer 類是隨 Node 內(nèi)核一起發(fā)布的核心庫(kù)。Buffer 庫(kù)為 Node.js 帶來(lái)了一種存儲(chǔ)原始數(shù)據(jù)的方法,可以讓 Node.js 處理二進(jìn)制數(shù)據(jù),每當(dāng)需要在 Node.js 中處理I/O操作中移動(dòng)的數(shù)據(jù)時(shí),就有可能使用 Buffer 庫(kù)。原始數(shù)據(jù)存儲(chǔ)在 Buffer 類的實(shí)例中。一個(gè) Buffer 類似于一個(gè)整數(shù)數(shù)組,但它對(duì)應(yīng)于 V8 堆內(nèi)存之外的一塊原始內(nèi)存。Buffer屬于global上的屬性可以直接被訪問(wèn),讀取文件,寫(xiě)入(二進(jìn)制)從硬盤(pán)中讀取的數(shù)據(jù)都存到內(nèi)存上,buffer可以和字符串相互轉(zhuǎn)化

定義buffer的三種方式

let buf1 = Buffer.alloc(6);
let buf2 = Buffer.from('珠峰');
let buf3 = Buffer.from([65,66,67]);

buffer中常用的方法

  • buff.toString()
  • buff.fill()
  • buff.slice()
  • buff.copy
  • Buffer.concat()
  • Buffer.isBuffer()
  • indexOf

以上就是node.js基礎(chǔ)知識(shí)匯總的詳細(xì)內(nèi)容,更多關(guān)于node.js基礎(chǔ)知識(shí)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • NodeJS感知和控制自身進(jìn)程的運(yùn)行環(huán)境和狀態(tài)

    NodeJS感知和控制自身進(jìn)程的運(yùn)行環(huán)境和狀態(tài)

    NodeJS可以感知和控制自身進(jìn)程的運(yùn)行環(huán)境和狀態(tài),也可以創(chuàng)建子進(jìn)程并與其協(xié)同工作,這使得NodeJS可以把多個(gè)程序組合在一起共同完成某項(xiàng)工作,并在其中充當(dāng)膠水和調(diào)度器的作用,和進(jìn)程管理相關(guān)的API單獨(dú)介紹起來(lái)比較枯燥,這里從一些典型的應(yīng)用場(chǎng)景出發(fā)
    2024-01-01
  • Express框架之connect-flash詳解

    Express框架之connect-flash詳解

    本篇文章主要介紹了Express框架之connect-flash詳解,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-05-05
  • nodeJS刪除文件方法示例

    nodeJS刪除文件方法示例

    這篇文章主要介紹了nodeJS刪除文件方法,結(jié)合實(shí)例形式分析了nodeJS實(shí)現(xiàn)文件與目錄的獲取、遍歷與刪除相關(guān)操作技巧,需要的朋友可以參考下
    2016-12-12
  • nodejs 子進(jìn)程正確的打開(kāi)方式

    nodejs 子進(jìn)程正確的打開(kāi)方式

    本文給大家總結(jié)了nodejs 子進(jìn)程的正確用法,非常的簡(jiǎn)單實(shí)用,有需要的小伙伴可以參考下
    2017-07-07
  • 淺析nodejs實(shí)現(xiàn)Websocket的數(shù)據(jù)接收與發(fā)送

    淺析nodejs實(shí)現(xiàn)Websocket的數(shù)據(jù)接收與發(fā)送

    WebSocket是HTML5開(kāi)始提供的一種瀏覽器與服務(wù)器間進(jìn)行全雙工通訊的網(wǎng)絡(luò)技術(shù),本文給大家介紹nodejs實(shí)現(xiàn)websocket的數(shù)據(jù)庫(kù)接收與發(fā)送,小伙伴們一起學(xué)習(xí)吧
    2015-11-11
  • nodejs實(shí)現(xiàn)的簡(jiǎn)單web服務(wù)器功能示例

    nodejs實(shí)現(xiàn)的簡(jiǎn)單web服務(wù)器功能示例

    這篇文章主要介紹了nodejs實(shí)現(xiàn)的簡(jiǎn)單web服務(wù)器功能,結(jié)合實(shí)例形式分析了nodejs構(gòu)建web服務(wù)器的相關(guān)監(jiān)聽(tīng)、響應(yīng)、數(shù)據(jù)處理等操作技巧,需要的朋友可以參考下
    2018-03-03
  • Node.js 使用流實(shí)現(xiàn)讀寫(xiě)同步邊讀邊寫(xiě)功能

    Node.js 使用流實(shí)現(xiàn)讀寫(xiě)同步邊讀邊寫(xiě)功能

    本文通過(guò)代碼給大家介紹了Node.js 使用流實(shí)現(xiàn)讀寫(xiě)同步邊讀邊寫(xiě)功能,非常不錯(cuò),具有參考借鑒價(jià)值,需要的額朋友參考下吧
    2017-09-09
  • electron安裝報(bào)錯(cuò)終極解決辦法詳細(xì)講解

    electron安裝報(bào)錯(cuò)終極解決辦法詳細(xì)講解

    當(dāng)使用npm安裝electron時(shí),有時(shí)候會(huì)遇到各種各樣的錯(cuò)誤,如網(wǎng)絡(luò)錯(cuò)誤、權(quán)限錯(cuò)誤等等,這篇文章主要給大家介紹了關(guān)于electron安裝報(bào)錯(cuò)終極解決辦法的相關(guān)資料,需要的朋友可以參考下
    2024-09-09
  • node.js操作mongodb簡(jiǎn)單示例分享

    node.js操作mongodb簡(jiǎn)單示例分享

    MongoDB是基于Javascript語(yǔ)言的數(shù)據(jù)庫(kù),存儲(chǔ)格式是JSON,而Node也是基于JavaScript的環(huán)境(庫(kù)),所以node和mongoDB的搭配能減少因?yàn)閿?shù)據(jù)轉(zhuǎn)換帶來(lái)的時(shí)間空間開(kāi)銷。今天我們來(lái)看看如何通過(guò)node.js來(lái)操作MongoliaDB
    2017-05-05
  • 如何在命令行判斷node.js啟動(dòng)了沒(méi)有(最新)

    如何在命令行判斷node.js啟動(dòng)了沒(méi)有(最新)

    這篇文章主要介紹了如何在命令行判斷node.js啟動(dòng)了沒(méi)有,使用 tasklist 命令列出所有正在運(yùn)行的進(jìn)程,并使用 findstr 命令過(guò)濾出 Node.js 進(jìn)程,感興趣的朋友跟隨小編一起看看吧
    2024-06-06

最新評(píng)論

古交市| 龙岩市| 延庆县| 汉源县| 中西区| 广饶县| 连云港市| 盱眙县| 大宁县| 蕲春县| 铜陵市| 凭祥市| 三原县| 安丘市| 三河市| 集贤县| 嫩江县| 攀枝花市| 宜兰市| 宽城| 陇川县| 中江县| 西充县| 津市市| 新绛县| 大理市| 宜兰县| 沐川县| 汤原县| 和静县| 白玉县| 德格县| 九台市| 沭阳县| 永新县| 响水县| 齐河县| 绍兴市| 隆回县| 拜城县| 腾冲县|