1. 程式人生 > 實用技巧 >nodejs.cn-Node.js-簡單介紹:Node.js 簡介

nodejs.cn-Node.js-簡單介紹:Node.js 簡介

ylbtech-nodejs.cn-Node.js-簡單介紹:Node.js 簡介

1.返回頂部
1、

Node.js 簡介

目錄

Node.js 是一個開源與跨平臺的 JavaScript 執行時環境。 它是一個可用於幾乎任何專案的流行工具!

Node.js 在瀏覽器外執行 V8 JavaScript 引擎(Google Chrome 的核心)。 這使 Node.js 表現得非常出色。

Node.js 應用程式運行於單個程序中,無需為每個請求建立新的執行緒

。 Node.js 在其標準庫中提供了一組非同步的 I/O 原生功能(用以防止 JavaScript 程式碼被阻塞),並且 Node.js 中的庫通常是使用非阻塞的正規化編寫的(從而使阻塞行為成為例外而不是規範)。

當 Node.js 執行 I/O 操作時(例如從網路讀取、訪問資料庫或檔案系統),Node.js 會在響應返回時恢復操作,而不是阻塞執行緒並浪費 CPU 迴圈等待。

這使 Node.js 可以在一臺伺服器上處理數千個併發連線,而無需引入管理執行緒併發的負擔(這可能是重大 bug 的來源)。

Node.js 具有獨特的優勢,因為為瀏覽器編寫 JavaScript 的數百萬前端開發者現在除了客戶端程式碼之外還可以編寫伺服器端程式碼,而無需學習完全不同的語言。

在 Node.js 中,可以毫無問題地使用新的 ECMAScript 標準,因為不必等待所有使用者更新其瀏覽器,你可以通過更改 Node.js 版本來決定要使用的 ECMAScript 版本,並且還可以通過執行帶有標誌的 Node.js 來啟用特定的實驗中的特性。

大量的庫

npm 的簡單結構有助於 Node.js 生態系統的激增,現在 npm 倉庫託管了超過 1,000,000 個可以自由使用的開源庫包。

Node.js 應用程式的示例

Node.js 最常見的 Hello World 示例是 Web 伺服器:

const http = require('http')

const hostname = '127.0.0.1'
const port = 3000

const server = http.createServer((req, res) => {
  res.statusCode = 200
  res.setHeader('Content-Type', 'text/plain')
  res.end('你好世界\n')
})

server.listen(port, hostname, () => {
  console.log(`伺服器執行在 http://${hostname}:${port}/`)
})

此程式碼首先引入了 Node.jshttp模組

Node.js 具有出色的標準庫,包括對網路的一流支援。

httpcreateServer()方法會建立新的 HTTP 伺服器並返回它。

伺服器被設定為監聽指定的埠和主機名。 當伺服器就緒後,回撥函式會被呼叫,在此示例中會通知我們伺服器正在執行。

每當接收到新的請求時,request事件會被呼叫,並提供兩個物件:一個請求(http.IncomingMessage物件)和一個響應(http.ServerResponse物件)。

這兩個物件對於處理 HTTP 呼叫至關重要。

第一個物件提供了請求的詳細資訊。 在這個簡單的示例中沒有使用它,但是你可以訪問請求頭和請求資料。

第二個物件用於返回資料給呼叫方。

在此示例中:

res.statusCode = 200

設定 statusCode 屬性為 200,以表明響應成功。

設定 Content-Type 響應頭:

res.setHeader('Content-Type', 'text/plain')

關閉響應,新增內容作為end()的引數:

res.end('你好世界\n')

Node.js 框架和工具

Node.js 是一個底層的平臺。 為了使開發者做事變得容易又來勁,社群在 Node.js 上構建了數千個庫。

久而久之,其中許多已成為受歡迎的選擇。 以下是一些值得學習的清單:

  • AdonisJs: 一個全棧框架,高度專注於開發者的效率、穩定和信任。 Adonis 是最快的 Node.js Web 框架之一。
  • Express: 提供了建立 Web 伺服器的最簡單但功能最強大的方法之一。 它的極簡主義方法,專注於伺服器的核心功能,是其成功的關鍵。
  • Fastify: 一個 Web 框架,高度專注於提供最佳的開發者體驗(以最少的開銷和強大的外掛架構)。 Fastify 是最快的 Node.js Web 框架之一。
  • hapi: 一個富框架,用於構建應用程式和服務,使開發者可以專注於編寫可重用的應用程式邏輯,而不必花費時間來搭建基礎架構。
  • koa: 由 Express 背後的同一個團隊構建,旨在變得更簡單更輕巧。 新專案的誕生是為了滿足建立不相容的更改而又不破壞現有社群。
  • Loopback.io: 使構建需要複雜整合的現代應用程式變得容易。
  • Meteor: 一個強大的全棧框架,以同構的方式使用 JavaScript 構建應用(在客戶端和伺服器上共享程式碼)。 曾經是提供所有功能的現成工具,現在可以與前端庫ReactVueAngular整合。 也可以用於建立移動應用。
  • Micro: 提供了一個非常輕量級的伺服器,用於建立非同步的 HTTP 微服務
  • NestJS: 一個基於 TypeScript 的漸進式 Node.js 框架,用於構建企業級的高效、可靠和可擴充套件的伺服器端應用程式。
  • Next.js: 用於渲染伺服器端渲染的React應用程式的框架。
  • Nx: 使用 NestJS、Express、ReactAngular等進行全棧開發的工具包! Nx 有助於將開發工作從一個團隊(構建一個應用程式)擴充套件到多個團隊(在多個應用程式上進行協作)!
  • Socket.io: 一個實時通訊引擎,用於構建網路應用程式
2、
2.返回頂部
3.返回頂部
4.返回頂部
5.返回頂部
1、 http://nodejs.cn/learn 2、
6.返回頂部
作者:ylbtech
出處:http://ylbtech.cnblogs.com/
本文版權歸作者和部落格園共有,歡迎轉載,但未經作者同意必須保留此段宣告,且在文章頁面明顯位置給出原文連線,否則保留追究法律責任的權利。