Rumah > hujung hadapan web > Soal Jawab bahagian hadapan > nodejs menetapkan penghalaan

nodejs menetapkan penghalaan

WBOY
Lepaskan: 2023-05-14 10:23:07
asal
1184 orang telah melayarinya

Dengan perkembangan pesat teknologi bahagian hadapan, semakin ramai orang memberi perhatian kepada pembangunan bahagian belakang. Sebagai rangka kerja belakang yang ringan, Node.js telah diiktiraf dan digunakan oleh semakin ramai pembangun.

Dalam Node.js, penetapan penghalaan adalah bahagian yang sangat penting. Penghalaan menentukan pengendali mana permintaan harus dikendalikan oleh. Artikel ini memperincikan cara menyediakan penghalaan.

1. Pasang Node.js

Sebelum mula menyediakan penghalaan, kita perlu memasang Node.js terlebih dahulu. Node.js boleh dimuat turun dan dipasang di tapak web rasmi.

Selepas pemasangan selesai, masukkan arahan berikut pada baris arahan untuk menyemak versi Node.js:

node -v
Salin selepas log masuk

2 Cipta fail server.js

Dalam Node.js , kita perlu mencipta fail server.js untuk memulakan pelayan dan menyediakan penghalaan. Dalam fail ini, kita perlu memperkenalkan modul http dan mencipta contoh pelayan.

Berikut ialah fail pelayan.js asas:

const http = require('http');

const hostname = '127.0.0.1';
const port = 3000;

const server = http.createServer((req, res) => {
  res.statusCode = 200;
  res.setHeader('Content-Type', 'text/plain');
  res.end('Hello, World!
');
});

server.listen(port, hostname, () => {
  console.log(`Server running at http://${hostname}:${port}/`);
});
Salin selepas log masuk

Dalam fail di atas, kami mencipta contoh pelayan dan menetapkan alamat IP dan nombor port pelayan. Kami juga menambahkan fungsi pemprosesan pada pelayan ini untuk menghantar "Hello, World!"

Anda boleh menggunakan arahan berikut untuk memulakan pelayan dalam baris arahan:

node server.js
Salin selepas log masuk

3 Tetapkan penghalaan

Tujuan utama menetapkan penghalaan adalah untuk memberitahu pelayan. apabila permintaan berbeza masuk Pengendali yang sepadan boleh dipanggil mengikut laluan yang diminta.

Untuk mencapai tujuan ini, kita perlu menentukan jadual penghalaan. Jadual penghalaan ialah objek di mana kunci adalah laluan permintaan dan nilai adalah fungsi pengendali.

Berikut ialah jadual penghalaan mudah:

const routes = {
  '/': homeHandler,
  '/about': aboutHandler,
  '/contact': contactHandler
};
Salin selepas log masuk

Dalam jadual penghalaan ini, kami mentakrifkan tiga laluan: '/', '/about' dan '/contact'. Setiap laluan dikaitkan dengan fungsi pengendali.

Seterusnya, kita perlu menentukan pengendali. Pengendali ialah fungsi yang mengendalikan permintaan yang berbeza. Sebagai contoh, pengendali boleh menghantar halaman HTML, membaca pangkalan data atau memanggil API.

Berikut ialah pengendali mudah:

const homeHandler = (req, res) => {
  res.statusCode = 200;
  res.setHeader('Content-Type', 'text/html');
  res.end('<h1>Welcome to my homepage!</h1>');
};

const aboutHandler = (req, res) => {
  res.statusCode = 200;
  res.setHeader('Content-Type', 'text/html');
  res.end('<h1>About me</h1><p>I am a Node.js developer.</p>');
};

const contactHandler = (req, res) => {
  res.statusCode = 200;
  res.setHeader('Content-Type', 'text/html');
  res.end('<h1>Contact me</h1><p>You can contact me at nodejs@example.com.</p>');
};
Salin selepas log masuk

Setiap pengendali menetapkan kod status HTTP, pengepala respons dan badan respons supaya permintaan itu boleh dikendalikan dengan betul apabila ia tiba.

Kini kita perlu menyambungkan jadual penghalaan dengan pengendali. Kita boleh menambah fungsi penghalaan dalam fungsi penciptaan pelayan untuk melaksanakan pemprosesan penghalaan.

Berikut ialah kod pengendalian laluan yang lengkap:

const http = require('http');

const hostname = '127.0.0.1';
const port = 3000;

const routes = {
  '/': homeHandler,
  '/about': aboutHandler,
  '/contact': contactHandler
};

const homeHandler = (req, res) => {
  res.statusCode = 200;
  res.setHeader('Content-Type', 'text/html');
  res.end('<h1>Welcome to my homepage!</h1>');
};

const aboutHandler = (req, res) => {
  res.statusCode = 200;
  res.setHeader('Content-Type', 'text/html');
  res.end('<h1>About me</h1><p>I am a Node.js developer.</p>');
};

const contactHandler = (req, res) => {
  res.statusCode = 200;
  res.setHeader('Content-Type', 'text/html');
  res.end('<h1>Contact me</h1><p>You can contact me at nodejs@example.com.</p>');
};

const server = http.createServer((req, res) => {
  const url = req.url;
  if (routes[url]) {
    routes[url](req, res);
  } else {
    res.statusCode = 404;
    res.setHeader('Content-Type', 'text/plain');
    res.end('404 - Not found');
  }
});

server.listen(port, hostname, () => {
  console.log(`Server running at http://${hostname}:${port}/`);
});
Salin selepas log masuk

Dalam kod ini, kami menyambungkan jadual penghalaan dengan pengendali. Apabila permintaan tiba, kami memadankan laluan permintaan dengan jadual penghalaan. Jika perlawanan berjaya, kami memanggil pengendali yang sesuai. Jika tiada padanan, kami akan menghantar ralat 404 sebagai balasan.

4. Ringkasan

Dalam Node.js, penetapan penghalaan adalah bahagian yang sangat penting. Penghalaan adalah faktor utama dalam menentukan pengendali mana permintaan harus dikendalikan.

Artikel ini memperincikan cara menyediakan penghalaan. Dengan membaca artikel ini, pembaca boleh memahami cara membuat pelayan, mentakrifkan jadual dan pengendali penghalaan serta menyambungkannya.

Sebagai rangka kerja belakang yang fleksibel dan mudah dipelajari, Node.js sangat membantu dalam meningkatkan kecekapan pembangunan dan tahap kemahiran pembangun.

Atas ialah kandungan terperinci nodejs menetapkan penghalaan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan