Maison  >  Article  >  interface Web  >  Comprendre les événements dans Node.js avec des exemples de code simples - Tutoriel Node.js - Partie 6

Comprendre les événements dans Node.js avec des exemples de code simples - Tutoriel Node.js - Partie 6

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-09-20 18:45:02762parcourir

Understanding Events in Node.js with Simple Code Examples - Node.js Tutorial - Part 6

Que sont les événements ?

Dans Node.js, un événement est une action qui peut être écoutée et mise en œuvre. Imaginez les événements comme un système de notification. Chaque fois que quelque chose se produit, comme la fin d'une lecture de fichier ou une demande reçue, Node.js déclenche un événement auquel vous pouvez répondre.

Émetteur d'événements

Node.js a un module intégré appelé événements, et la classe la plus importante de ce module est EventEmitter. Il permet de définir et de gérer des événements.

Exemple 1 : émetteur d'événements de base

Voyons comment créer un émetteur d'événements.

const EventEmitter = require('events');
const myEmitter = new EventEmitter();

// Register an event listener
myEmitter.on('greet', () => {
  console.log('Hello there!');
});

// Emit the event
myEmitter.emit('greet');

Dans cet exemple, nous avons enregistré un auditeur pour l'événement de salutation, puis avons émis l'événement. Le résultat est un simple « Bonjour ! » imprimé sur la console.

Exemple 2 : transmettre des arguments avec des événements

Vous pouvez également transmettre des arguments lors de l'émission d'événements. Ceci est utile lorsque vous devez transmettre des données.

myEmitter.on('sayHello', (name) => {
  console.log(`Hello, ${name}!`);
});

myEmitter.emit('sayHello', 'Alice');

Maintenant, lorsque nous émettons l'événement sayHello, il salue Alice.

Exemple 3 : Utilisation d'événements dans un serveur HTTP simple

Créons un serveur HTTP de base et montrons comment les événements entrent en jeu. Dans Node.js, le module http utilise largement les événements. Chaque fois qu'une requête arrive sur le serveur, elle déclenche un événement.

const http = require('http');

// Create a server
const server = http.createServer((req, res) => {
  if (req.url === '/') {
    res.write('Hello World');
    res.end();
  }
});

// Register an event listener for 'request'
server.on('request', (req, res) => {
  console.log(`Received request for ${req.url}`);
});

// Start the server
server.listen(3000, () => {
  console.log('Server is running on port 3000');
});

Dans cet exemple :

  • Un serveur HTTP de base est créé.
  • Un écouteur d'événement est ajouté pour l'événement « requête » afin d'enregistrer chaque URL de demande.
  • Chaque fois que le serveur reçoit une requête, l'événement de requête est émis, qui est récupéré par l'auditeur, enregistrant l'URL demandée.

Exemple 4 : événements personnalisés sur un serveur

Vous pouvez créer des événements personnalisés dans le code de votre serveur pour gérer des tâches spécifiques. Voici un exemple d'émission d'un événement personnalisé lorsqu'un client se connecte.

const EventEmitter = require('events');
const http = require('http');

// Create an event emitter instance
const myEmitter = new EventEmitter();

// Create a server
const server = http.createServer((req, res) => {
  res.write('Hello Client');
  res.end();

  // Emit a custom event on each request
  myEmitter.emit('clientConnected', req.url);
});

// Listen for the custom 'clientConnected' event
myEmitter.on('clientConnected', (url) => {
  console.log(`A client connected to ${url}`);
});

// Start the server
server.listen(3000, () => {
  console.log('Server is running on port 3000');
});

Dans cet exemple :

  • Nous créons un événement personnalisé, clientConnected, qui se déclenche chaque fois qu'un client fait une requête au serveur.
  • L'écouteur de cet événement enregistre l'URL de la requête lorsque l'événement est émis.

Pourquoi utiliser les événements ?

  • E/S non bloquantes : Node.js vise à gérer efficacement les tâches asynchrones. Les événements vous permettent de répondre lorsque les tâches sont terminées sans bloquer l'exécution.
  • Code modulaire : les événements vous aident à découpler votre code, le rendant plus modulaire et plus facile à gérer.

Pensées finales

Les événements sont au cœur de Node.js, ce qui le rend puissant pour gérer les opérations asynchrones, notamment dans le contexte des serveurs. En maîtrisant les événements, vous disposerez d'une base solide pour créer des applications évolutives et efficaces.

Merci d'avoir lu et bon codage ! ?

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