Maison  >  Article  >  interface Web  >  nodejs définit le routage

nodejs définit le routage

WBOY
WBOYoriginal
2023-05-14 10:23:071126parcourir

Avec le développement rapide de la technologie front-end, de plus en plus de personnes s'intéressent au développement back-end. En tant que framework back-end léger, Node.js est reconnu et utilisé par de plus en plus de développeurs.

Dans Node.js, la définition du routage est une partie très importante. Le routage détermine par quel gestionnaire une requête doit être traitée. Cet article explique comment configurer le routage.

1. Installez Node.js

Avant de commencer à configurer le routage, nous devons d'abord installer Node.js. Node.js peut être téléchargé et installé sur le site officiel.

Une fois l'installation terminée, entrez la commande suivante sur la ligne de commande pour vérifier la version de Node.js :

node -v

2. Créez le fichier server.js

Dans Node.js, nous devons créer un serveur. js pour démarrer le serveur et configurer le routage. Dans ce fichier, nous devons introduire le module http et créer une instance de serveur.

Ce qui suit est un fichier server.js de base :

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

Dans le fichier ci-dessus, nous créons une instance de serveur et définissons l'adresse IP et le numéro de port du serveur. Nous avons également ajouté une fonction de traitement à ce serveur pour envoyer une réponse « Hello, World ! » lorsqu'une demande arrive.

Vous pouvez utiliser la commande suivante pour démarrer le serveur dans la ligne de commande :

node server.js

3. Définir le routage

L'objectif principal de la configuration du routage est de permettre au serveur d'appeler le gestionnaire correspondant en fonction du chemin de la requête. lorsque différentes demandes arrivent.

Afin d'atteindre cet objectif, nous devons définir une table de routage. Une table de routage est un objet dont les clés sont les chemins des requêtes et les valeurs sont les fonctions du gestionnaire.

Ce qui suit est une table de routage simple :

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

Dans cette table de routage, nous définissons trois chemins : '/', '/about' et '/contact'. Chaque chemin est associé à une fonction de gestionnaire.

Ensuite, nous devons définir le gestionnaire. Un gestionnaire est une fonction qui gère différentes requêtes. Par exemple, un gestionnaire peut envoyer une page HTML, lire une base de données ou appeler une API.

Ce qui suit est un gestionnaire simple :

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

Chaque gestionnaire définit le code d'état HTTP, les en-têtes de réponse et le corps de la réponse afin que lorsque la requête arrive, il puisse la traiter correctement.

Maintenant, nous devons connecter la table de routage aux gestionnaires. Nous pouvons ajouter une fonction de routage à la fonction de création de serveur pour implémenter le traitement de routage.

Voici un code complet de gestion de route :

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

Dans ce code, nous connectons la table de routage au gestionnaire. Lorsqu'une requête arrive, nous comparons le chemin de la requête à la table de routage. Si la correspondance réussit, nous appelons le gestionnaire approprié. S'il n'y a pas de correspondance, nous enverrons une erreur 404 en réponse.

4. Résumé

Dans Node.js, la définition du routage est une partie très importante. Le routage est le facteur clé pour décider par quel gestionnaire une requête doit être traitée.

Cet article explique comment configurer le routage. En lisant cet article, les lecteurs peuvent comprendre comment créer des serveurs, définir des tables de routage et des gestionnaires et les connecter.

Node.js, en tant que framework back-end flexible et facile à apprendre, est d'une grande aide pour améliorer l'efficacité du développement et le niveau de compétence des développeurs.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn