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

node.js基礎知識匯總

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

一、node介紹

1.node的應用場景

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

2.性能

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

3.優(yōu)勢

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

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

應為 poll 接下來是 check

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

在node 11 以上 宏任務與微任務的執(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ù)組,但它對應于 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基礎知識匯總的詳細內(nèi)容,更多關于node.js基礎知識的資料請關注腳本之家其它相關文章!

相關文章

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

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

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

    Express框架之connect-flash詳解

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

    nodeJS刪除文件方法示例

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

    nodejs 子進程正確的打開方式

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

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

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

    nodejs實現(xiàn)的簡單web服務器功能示例

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

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

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

    electron安裝報錯終極解決辦法詳細講解

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

    node.js操作mongodb簡單示例分享

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

    如何在命令行判斷node.js啟動了沒有(最新)

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

最新評論

玛沁县| 潞城市| 汉中市| 民勤县| 阿拉善左旗| 海口市| 应城市| 漯河市| 南木林县| 吉安市| 龙南县| 浮山县| 阳城县| 永清县| 孝义市| 阿瓦提县| 肥西县| 石楼县| 长顺县| 海丰县| 宁乡县| 颍上县| 新巴尔虎左旗| 昭通市| 新邵县| 民勤县| 南宁市| 东丽区| 嘉鱼县| 怀化市| 南京市| 邵阳市| 互助| 广平县| 永济市| 包头市| 曲阳县| 三门峡市| 华阴市| 乐亭县| 金塔县|