nodejs初學

Dreaife發表於2024-12-09

Node.js 基礎

Node.js 是一個基於 Chrome V8 引擎的 JavaScript 執行時,用於在服務端執行 JavaScript 程式碼。以下是 Node.js 的基本概念和常用功能。


Node.js 簡介

特點

  1. 單執行緒、非阻塞 I/O:透過事件迴圈和非同步 I/O,提高高併發能力。
  2. 基於模組化:使用 CommonJS 模組規範,程式碼組織更清晰。
  3. 跨平臺:支援多種作業系統(Windows、Linux、macOS)。

應用場景

  • 構建 Web 服務(如 REST API)。
  • 建立實時應用程式(如聊天、遊戲)。
  • 指令碼工具(如自動化任務)。
  • 操作檔案系統。

基本模組

Node.js 提供了許多內建模組,以下是常用模組:

  1. fs(檔案系統模組)

    • 處理檔案和目錄。
    const fs = require("fs");
    
    // 同步讀取檔案
    const data = fs.readFileSync("example.txt", "utf-8");
    console.log("File content:", data);
    
    // 非同步讀取檔案
    fs.readFile("example.txt", "utf-8", (err, data) => {
        if (err) throw err;
        console.log("Async file content:", data);
    });
    
    
  2. http(HTTP 服務模組)

    • 建立 HTTP 伺服器。
    const http = require("http");
    
    const server = http.createServer((req, res) => {
        res.statusCode = 200;
        res.setHeader("Content-Type", "text/plain");
        res.end("Hello, World!");
    });
    
    server.listen(3000, () => {
        console.log("Server running at http://localhost:3000/");
    });
    
    
  3. path(路徑操作模組)

    • 處理檔案路徑。
    const path = require("path");
    
    const filePath = path.join(__dirname, "example.txt");
    console.log("File path:", filePath);
    
    
  4. os(作業系統資訊模組)

    • 獲取作業系統相關資訊。
    const os = require("os");
    
    console.log("Platform:", os.platform());
    console.log("Total Memory:", os.totalmem());
    
    

npm 和包管理

npm 的作用

  • npm(Node Package Manager)是 Node.js 的包管理工具,用於安裝和管理第三方庫。

常用命令

  1. 初始化專案

    npm init -y
    
    
    • 生成 package.json 檔案。
  2. 安裝包

    npm install express
    
    
    • 預設安裝到 node_modules 目錄,並記錄到 package.json
  3. 安裝全域性包

    npm install -g nodemon
    
    
    • 全域性安裝的包可直接作為命令使用。
  4. 移除包

    npm uninstall express
    
    

使用第三方模組

Express 示例

Express 是一個常用的 Node.js Web 框架,適合快速構建 Web 服務。

  1. 安裝 Express

    npm install express
    
    
  2. 建立簡單伺服器

    const express = require("express");
    const app = express();
    
    app.get("/", (req, res) => {
        res.send("Hello, Express!");
    });
    
    app.listen(3000, () => {
        console.log("Express server running at http://localhost:3000/");
    });
    
    

非同步程式設計模式

Node.js 的核心是非同步程式設計,以下是幾種常用方式:

  1. 回撥

    const fs = require("fs");
    fs.readFile("example.txt", "utf-8", (err, data) => {
        if (err) throw err;
        console.log("File content:", data);
    });
    
    
  2. Promise

    const fs = require("fs").promises;
    
    fs.readFile("example.txt", "utf-8")
        .then((data) => console.log("File content:", data))
        .catch((err) => console.error(err));
    
    
  3. async/await

    const fs = require("fs").promises;
    
    async function readFileContent() {
        try {
            const data = await fs.readFile("example.txt", "utf-8");
            console.log("File content:", data);
        } catch (err) {
            console.error(err);
        }
    }
    
    readFileContent();
    
    

相關文章