Node.js是什麼?¶
你可能知道JavaScript可以在瀏覽器裏寫代碼,讓網頁動起來。但Node.js讓JavaScript“走出”了瀏覽器,能在服務器端運行。它就像一個“JavaScript的後端管家”,讓你用熟悉的JavaScript語法來開發後端程序,比如搭建網站服務器、處理數據庫請求等。
Node.js基於Google的V8引擎(就是瀏覽器裏跑JS的那個引擎),讓JavaScript從前端擴展到了後端,實現了“全棧JavaScript開發”。
爲什麼要學Node.js?¶
對初學者來說,Node.js有幾個特別的優勢:
- JavaScript全棧開發:前後端都用JavaScript,不用學多種語言(比如前端HTML/CSS/JS,後端Python/Java),代碼複用性更高。
- 非阻塞I/O:想象你點外賣,傳統後端可能要“等一個訂單處理完才接下一個”,而Node.js像“同時接10個訂單的服務員”,能高效處理大量併發請求(比如聊天軟件、在線直播)。
- 輕量高效:適合開發小而快的項目,比如個人博客、API接口、即時聊天工具等。
- 豐富生態:通過npm(Node Package Manager,類似前端的包管理器)可以輕鬆安裝各種工具包,比如處理數據庫、文件操作、路由管理等。
安裝Node.js(簡單幾步)¶
- 去官網下載:打開 Node.js官網,推薦選“LTS版本”(穩定版,適合初學者)。
- 安裝:Windows/Mac/Linux直接雙擊安裝包,按提示下一步(Windows用戶注意勾選“Add to PATH”,方便命令行調用)。
- 驗證安裝:打開命令行工具(Windows用“cmd”或“PowerShell”,Mac/Linux用“終端”),輸入:
node -v # 顯示Node.js版本,比如v20.10.0
npm -v # 顯示npm版本,比如10.2.3
如果顯示版本號,說明安裝成功!
第一個Node.js程序:“Hello World”服務器¶
現在,讓我們用Node.js寫一個簡單的HTTP服務器,它會在你訪問時返回“Hello World”。
- 創建文件:在電腦任意位置新建一個文本文件,改名爲
server.js(後綴必須是.js)。 - 寫代碼:
// 引入Node.js內置的http模塊(處理HTTP請求的工具)
const http = require('http');
// 創建服務器實例,處理請求和響應
const server = http.createServer((req, res) => {
// 設置響應頭:狀態碼200(成功),內容類型是文本
res.writeHead(200, { 'Content-Type': 'text/plain' });
// 響應內容:Hello World
res.end('Hello World!\n');
});
// 讓服務器監聽3000端口(端口號可以改,比如8080)
const PORT = 3000;
server.listen(PORT, () => {
console.log(`服務器已啓動!訪問 http://localhost:${PORT}`);
});
- 運行程序:在命令行進入
server.js文件所在的文件夾,輸入:
node server.js
命令行會顯示 服務器已啓動!訪問 http://localhost:3000。
4. 測試:打開瀏覽器,輸入 http://localhost:3000,就能看到“Hello World!”啦!
Node.js的核心能力:文件操作與包管理¶
除了HTTP服務器,Node.js還能做很多事:
1. 文件系統(fs模塊)¶
用 fs 模塊可以讀寫本地文件。比如讀取一個文本文件:
const fs = require('fs');
// 異步讀取文件(非阻塞,不卡住其他操作)
fs.readFile('example.txt', 'utf8', (err, data) => {
if (err) {
console.error('讀取失敗:', err);
return;
}
console.log('文件內容:', data);
});
注意:需要提前創建 example.txt 文件(比如在同一文件夾下寫點內容),運行 node filename.js 就能看到文件內容。
2. 包管理器(npm)¶
npm是Node.js的“應用商店”,可以安裝別人寫好的工具包。比如安裝一個生成藝術字的包 figlet:
- 安裝包:在命令行執行
npm install figlet # 安裝figlet包(--save可以把依賴寫入package.json)
- 使用包:
const figlet = require('figlet');
figlet('Node.js真好玩!', (err, data) => {
console.log(data);
});
運行後會看到類似“Node.js真好玩!”的藝術字效果。
總結:Node.js入門不難,實踐出成果¶
Node.js的學習門檻低,代碼直觀,適合初學者快速上手。從“Hello World”服務器開始,逐步嘗試文件操作、調用第三方包,你就能感受到用JavaScript開發後端的樂趣。
後續可以學習Express框架(簡化路由、中間件等),或者開發簡單的全棧項目(比如帶數據庫的博客)。記住:編程最重要的是動手實踐,別怕犯錯,多敲代碼就能進步!
現在,試着寫一個自己的“小項目”吧——比如用Node.js搭建一個簡單的待辦事項列表API,或者讀取本地圖片並返回給瀏覽器!