首頁 >web前端 >js教程 >使用 Node.js 和 Express.js 建立網站

使用 Node.js 和 Express.js 建立網站

Barbara Streisand
Barbara Streisand原創
2024-10-20 08:20:031046瀏覽

Building a Website with Node.js and Express.js

本文深入探討如何使用 Node.js 和 Express.js 建立網站。 Express.js 是在Node.js 之上創建健壯且可擴展的Web 應用程式的重要框架,今天的重點將是路由中間件模板引擎cookie 會話

概念亮點:

  1. app.use(回呼)
  2. app.use(路徑,回呼)
  3. 取得、發佈、放置、刪除
  4. Express 中介軟體
  5. 呼叫堆疊中的下一個中間件
  6. 使用 Express 路由器
  7. Cookie 會話管理中介軟體
  8. 模板變數
  9. EJS

1. app.use(回呼)

Express.js中的app.use(callback)方法用來掛載中間件函數。無論 HTTP 方法或 URL 是什麼,該中間件都會針對向應用程式發出的每個請求執行。

例如) 在此範例中,中間件針對每個傳入請求運行並向控制台記錄一條訊息。

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

app.use((req, res, next) => {
  console.log('Middleware running for every request.');
  next();
});

2. app.use(路徑,回呼)

此方法可讓您在特定路徑掛載中間件。僅當請求與指定路徑相符時,中間件才會運作。

例如) 在本例中,只有以 /users 開頭的路由才會觸發中介軟體。

app.use('/users', (req, res, next) => {
  console.log('Middleware only for /users route.');
  next();
});

3.獲取、發布、放置、刪除

這些方法可讓您在特定路由上處理特定的 HTTP 方法(GET、POST、PUT、DELETE 等)。您可以在此定義 Web 應用程式的行為。

例如)每種方法處理 CRUD 操作的不同部分(建立、讀取、更新、刪除)以進行使用者管理。

app.get('/users', (req, ress) => {
  res.send('Fetching all users');
});

app.post('/users', (req, res) => {
  res.send('Creating a new user');
});

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

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

4. Express中介軟體

Express.js 中的中間件函數可以存取請求 (req) 和回應 (res) 對象,並且它們可以執行程式碼、進行修改或終止請求-回應週期。

主要特點:

  • 執行程式碼:您可以執行任何邏輯或操作。
  • 修改請求/回應:中介軟體可以更新標頭、向 req 新增資料或修改 res 物件。
  • 結束請求-回應週期:中間件可以將資料傳回客戶端並結束週期。

例如) 在此範例中,中間件將自訂資料新增至請求對象,並且路由處理程序存取它。

app.use((req, res, next) => {
  req.customData = 'Some custom data';
  next();
});

app.get('/', (req, res) => {
  res.send(`Data from middleware: ${req.customData}`);
});

5. 呼叫下一個中間件

在上面的範例中,我使用 next() 將控制權傳遞給下一個中間件或路由處理程序。如果不呼叫 next(),請求將掛起,因為循環不會繼續前進。

例如)這確保了每個中間件都可以將控制權傳遞給鏈中的下一個。

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

app.use((req, res, next) => {
  console.log('Middleware running for every request.');
  next();
});

6. 使用 Express 路由器

Express Router 是一個在模組化應用程式中組織路由的好工具。它可以幫助您將路線分解為更小的、易於管理的部分。

例如) 在此範例中,路由器安裝在 /users,對 /users/profile 的請求將由路由器的路由處理。

app.use('/users', (req, res, next) => {
  console.log('Middleware only for /users route.');
  next();
});

7.Cookie會話管理中介軟體

處理會話和 cookie 對於管理使用者驗證和狀態至關重要。 Express.js 提供了管理會話資料的中間件。

例如) 使用快速會話,我初始化會話並設定會話數據,這些數據可以在整個用戶會話期間存取。

app.get('/users', (req, ress) => {
  res.send('Fetching all users');
});

app.post('/users', (req, res) => {
  res.send('Creating a new user');
});

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

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

8. 模板變數

使用模板引擎渲染視圖時,可以傳遞變數來動態產生內容。例如,在 EJS 中,您可以將變數傳遞給視圖以進行渲染。

例如) 在此範例中,我將標題和訊息變數傳遞給 EJS 範本。

app.use((req, res, next) => {
  req.customData = 'Some custom data';
  next();
});

app.get('/', (req, res) => {
  res.send(`Data from middleware: ${req.customData}`);
});

9.EJS(嵌入式JavaScript)

EJS 是一種流行的模板引擎,可讓您編寫 HTML 並將 JavaScript 直接嵌入到 HTML 結構中。它簡單但功能強大,並且與動態網頁的 Express.js 整合良好。

例如) 語法用於將 JavaScript 表達式註入 HTML。

app.use((req, res, next) => {
  console.log('First middleware');
  next();
});

app.use((req, res, next) => {
  console.log('Second middlware');
});

以上是使用 Node.js 和 Express.js 建立網站的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn