搜尋
首頁web前端前端問答nodejs什麼意思
nodejs什麼意思Sep 14, 2021 pm 02:59 PM
nodejs

nodejs是一個基於Chrome V8引擎的JavaScript運行環境,一個讓JavaScript運行在服務端的開發平台,讓腳本語言JavaScript能作為伺服器語言。 node的優點:超強的高並發能力、使用JavaScript語法等。

nodejs什麼意思

本教學操作環境:windows7系統、nodejs 14.15.4版,DELL G3電腦。

Node.js發佈於2009年5月,由Ryan Dahl開發,是一個基於Chrome V8引擎的JavaScript運行環境,使用了一個事件驅動、非阻塞式I/O模型, 讓JavaScript 運行在服務端的開發平台,它讓JavaScript成為與PHP、Python、Perl、Ruby等服務端語言平起平坐的腳本語言。

Node.js對一些特殊用例進行最佳化,提供替代的API,讓V8在非瀏覽器環境下運作得更好,V8引擎執行Javascript的速度非常快,效能非常好,基於Chrome JavaScript運行時建立的平台, 用於方便地建立響應速度快、易於擴展的網路應用。

Node.js使用Google V8 JavaScript引擎,因為:

  • V8是基於BSD授權的開源軟體

  • V8速度非常快

  • V8專注於網路功能,在HTTP、DNS、TCP等方面更成熟

## Node.js的優勢?為什麼腳本語言JavaScript能作為伺服器語言?

優點1    Node.js有超強的高同時能力##         Node.js的首發目標,是提供一種簡單的,用語創建高效能伺服器及在該伺服器中運行各種應用程式的開發工具。

         相對於Java,PHP或.net 等經典伺服器端語言中,Node.js正像一個年輕力勝的小伙子,Java語言會為每一個客戶端創建一個新的線程,而每一個客戶端連線建立一個線程,需要耗費2MB的記憶體。也就是說。理論上一個8GB的伺服器可以同時連接用戶數為4000個左右,要存在高並發支援更多的用戶,必須額外增加伺服器。

         

Node.js不會為每位顧客連線建立一個新的執行緒,而只使用一個執行緒。

          這是Node基於單一執行緒(只有一個主執行緒去接請求,給予回應)

          那麼這不是更慢嗎?事實上,並不是這樣。

          Node.js當接收到一個使用者連接,就會觸發一個內部事件。透過事先定義好的函數,達到響應用戶的行為。 Node.js主線程並不關心程式要走什麼流程,實際上,有另外的工作線程去幫Node主線程去訪問文件,讀數據庫,當工作線程讀取到文件數據,或數據庫裡面的數據,就會把回呼函數回傳給Node主執行緒去執行,例如把找到的資料傳回客戶端,關閉連接一些操作。 (這就是Node非阻塞I/O,基於事件驅動)。

         

下面附上我畫的圖(如有不當之處請見諒哈)

#       這時候我們腦袋裡面應該有個雛形,就是--Node.js主線程一直在接收請求和回應請求這個活裡面倒騰,這樣它就可以不停地接收多個客戶端發過來的請求,它不用傻傻去等待IO操作,IO工作執行緒找到了數據,就會觸發事件回呼函數告訴主執行緒資料已經拿到了,這時候主線就執行回呼函數,把資料回傳給客戶端。

      理論上,8G記憶體的伺服器,可以同時容納3到4萬用戶的連線。

     這就是Node的閃光之處(單線程,非阻塞IO,事件驅動)

優點  2  Node用的是JavaScript的語法     

Node.JS

 基於javaScript 的V8引擎,也就是說只要會JS的語法,就能用於後端開發,但是Node官方推薦用ECMA Script6(ES6)語法。        Node打破了過去JavaScript只能在瀏覽器運作的局面,讓前後端程式設計環境統一,這樣就大幅降低了開發成本。 (這一點對前端開發人員非常友好,JS能做的東西越來越多,前端發展就越來越快)

#優點  3  Node.JS 出現促成前端工程化想法        前端近年來發展迅速,Node.js扮演無法取代的角色。

        Node.js不只是運作環境,也是一門脫胎換骨全新的JavaScript語言,它容納了JS語法基礎,還加入一些內部模組

         處理請求回應的模組

               fs   用來讀取檔案中的模組

              url #套件管理工具,讓我們可以很方便的透過命令列就能下載我們專案所依賴的套件

        如:

               npm 對##               npm install  -g create-react-app    等等

           定義模組語法   ↓↓

const http = require('http')
 const  Jquery = require('jquery');

         

#Node.js 在某種層面上影響前端發展的模式。讓前端工程模組化,開發迅速,降低程式碼耦合度,可維護性大為增強。 Node.js適合做什麼?

              以下列出幾個Node.js應用情境#更多程式相關知識,請造訪:

程式教學

! !

以上是nodejs什麼意思的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
Vercel是什么?怎么部署Node服务?Vercel是什么?怎么部署Node服务?May 07, 2022 pm 09:34 PM

Vercel是什么?本篇文章带大家了解一下Vercel,并介绍一下在Vercel中部署 Node 服务的方法,希望对大家有所帮助!

node.js gm是什么node.js gm是什么Jul 12, 2022 pm 06:28 PM

gm是基于node.js的图片处理插件,它封装了图片处理工具GraphicsMagick(GM)和ImageMagick(IM),可使用spawn的方式调用。gm插件不是node默认安装的,需执行“npm install gm -S”进行安装才可使用。

火了!新的JavaScript运行时:Bun,性能完爆Node火了!新的JavaScript运行时:Bun,性能完爆NodeJul 15, 2022 pm 02:03 PM

今天跟大家介绍一个最新开源的 javaScript 运行时:Bun.js。比 Node.js 快三倍,新 JavaScript 运行时 Bun 火了!

聊聊Node.js中的多进程和多线程聊聊Node.js中的多进程和多线程Jul 25, 2022 pm 07:45 PM

大家都知道 Node.js 是单线程的,却不知它也提供了多进(线)程模块来加速处理一些特殊任务,本文便带领大家了解下 Node.js 的多进(线)程,希望对大家有所帮助!

nodejs中lts是什么意思nodejs中lts是什么意思Jun 29, 2022 pm 03:30 PM

在nodejs中,lts是长期支持的意思,是“Long Time Support”的缩写;Node有奇数版本和偶数版本两条发布流程线,当一个奇数版本发布后,最近的一个偶数版本会立即进入LTS维护计划,一直持续18个月,在之后会有12个月的延长维护期,lts期间可以支持“bug fix”变更。

node爬取数据实例:聊聊怎么抓取小说章节node爬取数据实例:聊聊怎么抓取小说章节May 02, 2022 am 10:00 AM

node怎么爬取数据?下面本篇文章给大家分享一个node爬虫实例,聊聊利用node抓取小说章节的方法,希望对大家有所帮助!

深入浅析Nodejs中的net模块深入浅析Nodejs中的net模块Apr 11, 2022 pm 08:40 PM

本篇文章带大家带大家了解一下Nodejs中的net模块,希望对大家有所帮助!

怎么获取Node性能监控指标?获取方法分享怎么获取Node性能监控指标?获取方法分享Apr 19, 2022 pm 09:25 PM

怎么获取Node性能监控指标?本篇文章来和大家聊聊Node性能监控指标获取方法,希望对大家有所帮助!

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前By尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
4 週前By尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
4 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

mPDF

mPDF

mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

EditPlus 中文破解版

EditPlus 中文破解版

體積小,語法高亮,不支援程式碼提示功能

VSCode Windows 64位元 下載

VSCode Windows 64位元 下載

微軟推出的免費、功能強大的一款IDE編輯器