Artikel ini membahagikan secara mendalam kepada membina tapak web dengan Node.js dan Express.js. Express.js ialah rangka kerja penting untuk mencipta aplikasi web yang teguh dan berskala di atas Node.js, dan tumpuan hari ini akan tertumpu pada penghalaan, perisian tengah, enjin templat dan sesi kuki.
Kaedah app.use(panggilan balik) dalam Express.js digunakan untuk melekapkan fungsi middleware. Perisian tengah ini akan dijalankan untuk setiap permintaan yang dibuat kepada aplikasi anda, tanpa mengira kaedah HTTP atau URL.
cth.) Dalam contoh ini, middleware dijalankan untuk setiap permintaan masuk dan log mesej ke konsol.
const express = require('express'); const app = express(); app.use((req, res, next) => { console.log('Middleware running for every request.'); next(); });
Kaedah ini membolehkan anda memasang perisian tengah pada laluan tertentu. Perisian tengah hanya akan dijalankan jika permintaan sepadan dengan laluan yang ditentukan.
cth.) Dalam contoh ini, perisian tengah hanya akan dicetuskan untuk laluan yang bermula dengan /users.
app.use('/users', (req, res, next) => { console.log('Middleware only for /users route.'); next(); });
Kaedah ini membolehkan anda mengendalikan kaedah HTTP tertentu (GET, POST, PUT, DELETE, dll.) pada laluan tertentu. Di sinilah anda menentukan tingkah laku aplikasi web anda.
cth.) Setiap kaedah mengendalikan bahagian operasi CRUD yang berbeza (Buat, Baca, Kemas Kini, Padam) untuk pengurusan pengguna.
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}`); });
Fungsi perisian tengah dalam Express.js mempunyai akses kepada objek permintaan (req) dan respons (res), dan ia boleh melaksanakan kod, membuat pengubahsuaian atau menamatkan kitaran permintaan-tindak balas.
cth.) Dalam contoh ini, middleware menambahkan data tersuai pada objek permintaan dan pengendali laluan mengaksesnya.
app.use((req, res, next) => { req.customData = 'Some custom data'; next(); }); app.get('/', (req, res) => { res.send(`Data from middleware: ${req.customData}`); });
Dalam contoh di atas, saya menggunakan next() untuk menghantar kawalan kepada middleware atau pengendali laluan seterusnya. Tanpa memanggil next(), permintaan akan digantung kerana kitaran tidak akan bergerak ke hadapan.
cth.) Ini memastikan bahawa setiap bahagian middleware boleh menghantar kawalan ke seterusnya dalam rantai.
const express = require('express'); const app = express(); app.use((req, res, next) => { console.log('Middleware running for every request.'); next(); });
Penghala Ekspres ialah alat yang hebat untuk mengatur laluan dalam aplikasi modular. Ia membantu anda memecahkan laluan anda kepada bahagian yang lebih kecil dan boleh diurus.
cth.) Dalam contoh ini, penghala dipasang pada /users dan permintaan kepada /users/profile akan dikendalikan oleh laluan penghala.
app.use('/users', (req, res, next) => { console.log('Middleware only for /users route.'); next(); });
Sesi pengendalian dan kuki adalah penting untuk mengurus pengesahan dan keadaan pengguna. Express.js menyediakan perisian tengah untuk mengurus data sesi.
cth.) Menggunakan sesi ekspres, saya memulakan sesi dan menetapkan data sesi, yang boleh diakses sepanjang sesi pengguna.
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}`); });
Apabila memaparkan paparan menggunakan enjin templat, anda boleh menghantar pembolehubah untuk menjana kandungan secara dinamik. Sebagai contoh, dalam EJS, anda boleh menghantar pembolehubah kepada paparan anda untuk pemaparan.
cth.) Dalam contoh ini, saya menghantar pembolehubah tajuk dan mesej kepada templat EJS.
app.use((req, res, next) => { req.customData = 'Some custom data'; next(); }); app.get('/', (req, res) => { res.send(`Data from middleware: ${req.customData}`); });
EJS ialah enjin templat popular yang membolehkan anda menulis HTML dan membenamkan JavaScript terus dalam struktur HTML. Ia ringkas tetapi berkuasa dan disepadukan dengan baik dengan Express.js untuk halaman web dinamik.
cth.) Yang <%= %> sintaks digunakan untuk menyuntik ungkapan JavaScript ke dalam HTML.
app.use((req, res, next) => { console.log('First middleware'); next(); }); app.use((req, res, next) => { console.log('Second middlware'); });
Atas ialah kandungan terperinci Membina Tapak Web dengan Node.js dan Express.js. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!