欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

一、node介紹

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

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

2.性能

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

3.優(yōu)勢

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

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

二、node的全局對象和模塊

1.global

global是全局對象,可以直接訪問里面的屬性

里面有:

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

2.模塊

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

三、process常用屬性或方法

process.platform 系統(tǒng)

process.kill 殺進程

process.exit 退出進程

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

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

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

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

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

重要的三個階段

timer 存放定時器

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

check setImmediate

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

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

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

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

五、Buffer

JavaScript 語言自身只有字符串數(shù)據(jù)類型,沒有二進制數(shù)據(jù)類型。

但在處理像TCP流或文件流時,必須使用到二進制數(shù)據(jù)。因此在 Node.js中,定義了一個 Buffer 類,該類用來創(chuàng)建一個專門存放二進制數(shù)據(jù)的緩存區(qū)。在 Node.js 中,Buffer 類是隨 Node 內(nèi)核一起發(fā)布的核心庫。Buffer 庫為 Node.js 帶來了一種存儲原始數(shù)據(jù)的方法,可以讓 Node.js 處理二進制數(shù)據(jù),每當需要在 Node.js 中處理I/O操作中移動的數(shù)據(jù)時,就有可能使用 Buffer 庫。原始數(shù)據(jù)存儲在 Buffer 類的實例中。一個 Buffer 類似于一個整數(shù)數(shù)組,但它對應(yīng)于 V8 堆內(nèi)存之外的一塊原始內(nèi)存。Buffer屬于global上的屬性可以直接被訪問,讀取文件,寫入(二進制)從硬盤中讀取的數(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ǔ)知識匯總的詳細內(nèi)容,更多關(guān)于node.js基礎(chǔ)知識的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

最新評論