Rumah  >  Artikel  >  hujung hadapan web  >  Membina Tapak Web dengan Node.js dan Express.js

Membina Tapak Web dengan Node.js dan Express.js

Barbara Streisand
Barbara Streisandasal
2024-10-20 08:20:03948semak imbas

Building a Website with Node.js and Express.js

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.

Sorotan Konsep:

  1. app.use(panggilan balik)
  2. app.use(laluan, panggil balik)
  3. DAPATKAN, POS, LETAK, PADAM
  4. Perisian Tengah Ekspres
  5. Panggil Perisian Tengah Seterusnya dalam Tindanan
  6. Menggunakan Penghala Ekspres
  7. Perisian Tengah Pengurusan Sesi Kuki
  8. Pembolehubah Templat
  9. EJS

1. app.use(panggilan balik)

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();
});

2. app.use(path, callback)

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();
});

3. DAPATKAN, POS, LETAK, PADAM

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}`);
});

4. Express Middleware

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.

Ciri-ciri Utama:

  • Laksanakan kod: anda boleh melakukan sebarang logik atau operasi.
  • Ubah suai permintaan/tindak balas: perisian tengah boleh mengemas kini pengepala, menambah data pada req atau mengubah suai objek res.
  • Tamatkan kitaran tindak balas permintaan: perisian tengah boleh menghantar data kembali kepada pelanggan dan menamatkan kitaran.

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}`);
});

5. Memanggil Perisian Tengah Seterusnya

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();
});

6. Menggunakan Penghala Ekspres

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();
});

7. Perisian Tengah Pengurusan Sesi Kuki

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}`);
});

8. Pembolehubah Templat

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}`);
});

9. EJS (JavaScript Terbenam)

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn