本文深入探討如何使用 Node.js 和 Express.js 建立網站。 Express.js 是在Node.js 之上創建健壯且可擴展的Web 應用程式的重要框架,今天的重點將是路由、中間件、模板引擎 和cookie 會話。
概念亮點:
- app.use(回呼)
- app.use(路徑,回呼)
- 取得、發佈、放置、刪除
- Express 中介軟體
- 呼叫堆疊中的下一個中間件
- 使用 Express 路由器
- Cookie 會話管理中介軟體
- 模板變數
- 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中文網其他相關文章!

JavaScript字符串替換方法詳解及常見問題解答 本文將探討兩種在JavaScript中替換字符串字符的方法:在JavaScript代碼內部替換和在網頁HTML內部替換。 在JavaScript代碼內部替換字符串 最直接的方法是使用replace()方法: str = str.replace("find","replace"); 該方法僅替換第一個匹配項。要替換所有匹配項,需使用正則表達式並添加全局標誌g: str = str.replace(/fi

本教程向您展示瞭如何將自定義的Google搜索API集成到您的博客或網站中,提供了比標準WordPress主題搜索功能更精緻的搜索體驗。 令人驚訝的是簡單!您將能夠將搜索限制為Y

因此,在這裡,您準備好了解所有稱為Ajax的東西。但是,到底是什麼? AJAX一詞是指用於創建動態,交互式Web內容的一系列寬鬆的技術。 Ajax一詞,最初由Jesse J創造

本文系列在2017年中期進行了最新信息和新示例。 在此JSON示例中,我們將研究如何使用JSON格式將簡單值存儲在文件中。 使用鍵值對符號,我們可以存儲任何類型的

利用輕鬆的網頁佈局:8 ESTISSEL插件jQuery大大簡化了網頁佈局。 本文重點介紹了簡化該過程的八個功能強大的JQuery插件,對於手動網站創建特別有用

核心要點 JavaScript 中的 this 通常指代“擁有”該方法的對象,但具體取決於函數的調用方式。 沒有當前對象時,this 指代全局對象。在 Web 瀏覽器中,它由 window 表示。 調用函數時,this 保持全局對象;但調用對象構造函數或其任何方法時,this 指代對象的實例。 可以使用 call()、apply() 和 bind() 等方法更改 this 的上下文。這些方法使用給定的 this 值和參數調用函數。 JavaScript 是一門優秀的編程語言。幾年前,這句話可

jQuery是一個很棒的JavaScript框架。但是,與任何圖書館一樣,有時有必要在引擎蓋下發現發生了什麼。也許是因為您正在追踪一個錯誤,或者只是對jQuery如何實現特定UI感到好奇

該帖子編寫了有用的作弊表,參考指南,快速食譜以及用於Android,BlackBerry和iPhone應用程序開發的代碼片段。 沒有開發人員應該沒有他們! 觸摸手勢參考指南(PDF)是Desig的寶貴資源


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

Safe Exam Browser
Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

SublimeText3 Linux新版
SublimeText3 Linux最新版

SublimeText3漢化版
中文版,非常好用

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)