」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > Express.js 要點

Express.js 要點

發佈於2024-11-07
瀏覽:778

Express.js Essentials

本文重點介紹 Express.js 的基本知識,它是使用 Node.js 建立後端應用程式的關鍵部分。我將深入探討路由、CRUD 操作、回應方法和中間件功能,所有這些功能在建立健壯的 Web 應用程式中都發揮關鍵作用。

概念亮點:

  1. 路由方法與 CR​​UD
  2. 路由參數
  3. 路由處理程序
  4. 回應方式
  5. 內建中間件功能

1. 路由方法和CRUD

在 Express.js 中,路由方法定義應用程式如何回應特定路由的不同 HTTP 請求(例如 GET、POST、PUT、DELETE)。這些方法用於在應用程式中實作 CRUD(建立、讀取、更新、刪除)操作。

基本 CRUD 範例: 在此範例中,每個路由會根據所使用的 HTTP 方法回應不同的 CRUD 操作。

const express = require('express'); 
const app = express(); 

// Create - POST
app.post('/users', (req, res) => {
  res.send('User created');
}); 

// Read - GET
app.get('/users', (req, res) => {
  res.send('Here is the user'); 
}); 

// Update - PUT
app.put('/users/:id', (req, res) => {
  res.send('User with ID ${req.params.id} updated'); 
});

// Delete - DELETE
app.delete('/users//:id', (req, res) => {
  res.send('User with ID ${req.params.id} deleted');
}):

app.listen(3000, () => 
  console.log('Server running on port 3000')
);

2. 路由參數

路由參數可讓您擷取請求 URL 的特定部分並在路由處理程序中使用它們。例如,您可以從 URL 中提取 ID 並使用它來執行與該 ID 相關的操作。

例如) 在此範例中,:id 是一個動態參數,它將被提取並在回應中使用。如果此動態參數為 123,則對 /users/123 的請求將傳回「Fetching user with ID: 123.」

app.get('/users/:id', (req, res) => {
  const userId = req.params.id; 
  res.send(`Fetching user with ID: ${userId}`);
});

3. 路由處理程序

路由處理程序定義伺服器如何處理 HTTP 請求。您可以在單一路由中定義多個中間件函數,從而實現更清晰和模組化的程式碼。

具有多個處理程序的範例: 在此範例中,第一個中間件記錄訊息,第二個中間件發送回應。

app.get('/users', (req, res, next) => {
  console.log('First middleware');
  next(); // call the next handler in the stack
}, (req, res) => {
  res.send('User list'); 
});

4. 應對方法

Express.js 提供了幾種向客戶端發送回應的方法。讓我們探討一些常用的反應方法。

a) .json() 發送 JSON 回應。

app.get('/data', (req, res) => {
  res.json({ message: 'Hello, JSON' });
});

b) .send() 傳送各種類型的回應(文字、HTML、緩衝區等)。

app.get('/text', (req, res) => {
  res.send('Sending text');
});

c) .download() 將文件作為附件發送,提示使用者下載。


app.get('/download', (re




版本聲明 本文轉載於:https://dev.to/ryoichihomma/expressjs-essentials-5e83?1如有侵犯,請聯絡[email protected]刪除
最新教學 更多>

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3