Node.js 簡介

這篇文章是關於 Node.js 的入門指南,Node.js 是一個運行在伺服器端的 JavaScript 執行環境。Node.js 是建立在 Google Chrome V8 JavaScript 引擎之上,主要用於建立網頁伺服器,但不僅限於此。 概述 [Node.js 的最佳特性](#node.js 的最佳特性) 快速 簡單 JavaScript V8 異步平台 大量的函式庫 [一個 Node.js 應用程式範例](#一個 Node.js 應用程式範例) [Node.js 框架和工具](#node.js 框架和工具) Node.js 是一個在伺服器上運行的 JavaScript 執行環境。 Node.js 是開源的、跨平台的,自從在2009年推出以來,它已經變得非常流行,現在在網頁開發中扮演著重要的角色。如果以 GitHub 上的 stars 數量作為流行度指標,擁有58000+ stars就意味著非常受歡迎。 Node.js 運行 V8 JavaScript 引擎,該引擎是 Google Chrome 的核心,而 Node.js 可以利用使 Chrome JavaScript 執行時非常高速的工程師的工作,這使得 Node.js 可以受益於巨大的性能改進和即時編譯。由於這一點,運行在 Node.js 中的 JavaScript 代碼可以非常高效。 Node.js 的應用程式由單個進程運行,不為每個請求創建新的線程。Node.js 的標準庫提供了一組異步 I/O 原語,可以防止 JavaScript 代碼阻塞,通常情況下 Node.js 的庫都是使用非阻塞的範例來編寫,使得阻塞行為成為異常而不是正常行為。 當 Node....

使用Node.js服務一個HTML頁面

了解如何使用Node.js無依賴項目來服務一個 index.html HTML 頁面。 我有一個需求,需要從Node.js服務器中提供一個HTML頁面,以下是實現這一需求的最簡代碼: const http = require('http') const fs = require('fs') const server = http.createServer((req, res) => { res.writeHead(200, { 'content-type': 'text/html' }) fs.createReadStream('index.html').pipe(res) }) server.listen(process.env.PORT || 3000) 不需要任何依賴項。 將此代碼添加到一個 app.js 文件中,然後創建一個 index.html 頁面,運行 node app.js 命令。 請注意,上述代碼不支持提供靜態資源,它僅僅提供 index.html 頁面的服務。

如何使用終端機從伺服器下載文件

我需要從伺服器上轉移一個文件。 我通過 SSH 連接,不想設置 SFTP 連接(而且也不確定是否允許 SFTP 連接),因此我打開另一個終端窗口並使用了 scp 命令。 這是語法: scp -i /.ssh/yourkey [[email protected]](/cdn-cgi/l/email-protection):/path-to-file/on/server.txt ./ 將 USER 和 SERVER 替換為您的伺服器詳情,/path-to-file/on/server.txt 替換為文件的路徑。同時使用您的 SSH 金鑰路徑。 這將下載文件到與您所在的相同文件夾中,因為我指定為 ./。您可以將其更改為計算機上的任何文件夾。

構建一個HTTP伺服器

如何使用Node.js構建一個HTTP伺服器 以下是我們在Node.js介紹中使用的HTTP網絡伺服器,作為Node的Hello World應用程式。 const http = require('http') const hostname = 'localhost' const port = 3000 const server = http.createServer((req, res) => { res.statusCode = 200 res.setHeader('Content-Type', 'text/plain') res.end('Hello World\n') }) server.listen(port, hostname, () => { console.log(`Server running at http://${hostname}:${port}/`) }) 讓我們簡單分析一下。我們導入了http模組。 我們使用這個模組來創建一個HTTP伺服器。 伺服器被設定為在指定的主機名localhost上,監聽3000端口。當伺服器準備就緒時,調用listen回調函數。 我們傳遞的回調函數是在每次收到請求時都會執行的函數。每當收到新的請求時,都會調用request事件,並提供兩個對象:一個請求(http.IncomingMessage對象)和一個響應(http.ServerResponse對象)。 request提供了請求的詳細信息。通過它,我們可以訪問請求標頭和請求數據。 response用於填充我們將返回給客戶端的數據。 在這個例子中,我們通過res.statusCode = 200將statusCode屬性設置為200,表示請求成功。 我們還設置了Content-Type標頭: res.setHeader('Content-Type', 'text/plain') 並且我們通過將內容作為end()方法的參數來關閉響應: res.end('Hello World\n')