本文深入探討如何使用 Node.js 和 Express.js 建立網站。 Express.js 是在Node.js 之上創建健壯且可擴展的Web 應用程式的重要框架,今天的重點將是路由、中間件、模板引擎 和cookie 會話。
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(); });
此方法可讓您在特定路徑掛載中間件。僅當請求與指定路徑相符時,中間件才會運作。
例如) 在本例中,只有以 /users 開頭的路由才會觸發中介軟體。
app.use('/users', (req, res, next) => { console.log('Middleware only for /users route.'); next(); });
這些方法可讓您在特定路由上處理特定的 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}`); });
Express.js 中的中間件函數可以存取請求 (req) 和回應 (res) 對象,並且它們可以執行程式碼、進行修改或終止請求-回應週期。
例如) 在此範例中,中間件將自訂資料新增至請求對象,並且路由處理程序存取它。
app.use((req, res, next) => { req.customData = 'Some custom data'; next(); }); app.get('/', (req, res) => { res.send(`Data from middleware: ${req.customData}`); });
在上面的範例中,我使用 next() 將控制權傳遞給下一個中間件或路由處理程序。如果不呼叫 next(),請求將掛起,因為循環不會繼續前進。
例如)這確保了每個中間件都可以將控制權傳遞給鏈中的下一個。
const express = require('express'); const app = express(); app.use((req, res, next) => { console.log('Middleware running for every request.'); next(); });
Express Router 是一個在模組化應用程式中組織路由的好工具。它可以幫助您將路線分解為更小的、易於管理的部分。
例如) 在此範例中,路由器安裝在 /users,對 /users/profile 的請求將由路由器的路由處理。
app.use('/users', (req, res, next) => { console.log('Middleware only for /users route.'); next(); });
處理會話和 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}`); });
使用模板引擎渲染視圖時,可以傳遞變數來動態產生內容。例如,在 EJS 中,您可以將變數傳遞給視圖以進行渲染。
例如) 在此範例中,我將標題和訊息變數傳遞給 EJS 範本。
app.use((req, res, next) => { req.customData = 'Some custom data'; next(); }); app.get('/', (req, res) => { res.send(`Data from middleware: ${req.customData}`); });
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中文網其他相關文章!