Hi,我是布蘭妮甜 !Node.js讓JavaScript突破了瀏覽器的限制,成為全棧開發的利器。作為基于V8引擎的高性能運行時,它徹底改變了JavaScript只能做前端開發的局面。本文將帶你快速掌握
Node.js
的核心用法:環境搭建與模塊系統
、HTTP服務器開發
、異步編程精髓
、Express框架實戰
、項目部署技巧
,無論你是想轉型全棧的前端工程師,還是剛入門的新手,都能通過這篇指南快速上手Node.js開發。我們將用最簡潔的方式,幫你打通JavaScript服務端開發的關鍵環節。
文章目錄
- 一、Node.js簡介
- 二、安裝與環境配置
- 三、基礎模塊使用
- 1. HTTP模塊 - 創建Web服務器
- 2. 文件系統模塊(fs)
- 3. 路徑模塊(path)
- 四、npm包管理
- 五、Express框架快速入門
- 六、異步編程
- 1. 回調函數
- 2. Promise
- 3. async/await
- 七、調試與開發技巧
- 八、部署Node.js應用
- 九、學習資源推薦
- 十、總結
一、Node.js簡介
Node.js是一個基于Chrome V8引擎的JavaScript運行環境,它讓開發者能夠使用JavaScript編寫服務端程序。由Ryan Dahl于2009年創建,Node.js以其非阻塞I/O和事件驅動特性聞名,特別適合構建高性能的網絡應用。
核心特點:
- 異步非阻塞I/O:高效處理并發請求
- 單線程事件循環:輕量且高效
- 跨平臺:支持Windows、Linux、MacOS等
- npm生態:擁有全球最大的開源庫生態系統
- 統一語言:前后端都使用JavaScript
二、安裝與環境配置
-
下載安裝:
- 官網(https://nodejs.org)下載LTS版本lts-rw3kx18pthxa2g5e/)
- 或使用版本管理工具(nvm/nvm-windows)
-
驗證安裝:
node -v npm -v
-
初始化項目:
mkdir my-node-app cd my-node-app npm init -y
三、基礎模塊使用
1. HTTP模塊 - 創建Web服務器
const http = require('http');const server = http.createServer((req, res) => {res.writeHead(200, {'Content-Type': 'text/plain'});res.end('Hello Node.js!\n');
});server.listen(3000, () => {console.log('Server running at http://localhost:3000/');
});
2. 文件系統模塊(fs)
const fs = require('fs');// 讀取文件
fs.readFile('file.txt', 'utf8', (err, data) => {if (err) throw err;console.log(data);
});// 寫入文件
fs.writeFile('newfile.txt', 'Hello Node.js', (err) => {if (err) throw err;console.log('File saved!');
});
3. 路徑模塊(path)
const path = require('path');console.log(path.join(__dirname, 'public', 'index.html'));
// 輸出:/當前目錄/public/index.html
四、npm包管理
- 安裝包:
npm install express
- 使用包:
const express = require('express'); const app = express();
- 常用命令:
npm install
:安裝依賴npm update
:更新包npm uninstall
:卸載包npm run
:執行腳本
五、Express框架快速入門
const express = require('express');
const app = express();// 路由示例
app.get('/', (req, res) => {res.send('Home Page');
});app.get('/about', (req, res) => {res.send('About Page');
});// 啟動服務器
app.listen(3000, () => {console.log('Server started on port 3000');
});
六、異步編程
1. 回調函數
fs.readFile('file.txt', (err, data) => {if (err) return console.error(err);console.log(data.toString());
});
2. Promise
const readFilePromise = (filename) => {return new Promise((resolve, reject) => {fs.readFile(filename, (err, data) => {if (err) reject(err);else resolve(data);});});
};
3. async/await
async function processFile() {try {const data = await readFilePromise('file.txt');console.log(data.toString());} catch (err) {console.error(err);}
}
七、調試與開發技巧
- 使用console:
console.log('普通信息'); console.error('錯誤信息'); console.table([{a:1, b:2}, {a:3, b:4}]);
- Node.js內置調試器:
node inspect app.js
- 使用nodemon自動重啟:
npm install -g nodemon nodemon app.js
八、部署Node.js應用
-
PM2進程管理:
npm install pm2 -g pm2 start app.js pm2 monit
-
Docker部署:
FROM node:14 WORKDIR /app COPY package*.json ./ RUN npm install COPY . . EXPOSE 3000 CMD ["node", "app.js"]
九、學習資源推薦
- 官方文檔:https://nodejs.org/en/docs/
- Express文檔:https://expressjs.com/
- Node.js最佳實踐:https://github.com/goldbergyoni/nodebestpractices
十、總結
Node.js為JavaScript開發者打開了服務端開發的大門,通過掌握這些基礎知識,您已經可以開始構建自己的Web應用了。當您遇到問題時,官方文檔和開發者社區往往能提供最佳解決方案。建議您在學習過程中多動手實踐,從簡單的HTTP服務開始,逐步構建更復雜的應用,最終成長為一名真正的全棧工程師。