Maison > interface Web > js tutoriel > Premiers pas avec NodeJS

Premiers pas avec NodeJS

WBOY
Libérer: 2024-08-21 06:12:35
original
701 Les gens l'ont consulté

Getting Started with Node JS

Qu’est-ce que NodeJS ?

  • Définition : NodeJS est un environnement d'exécution JavaScript open source et multiplateforme qui vous permet d'exécuter du code JavaScript en dehors d'un navigateur Web.
  • Objectif : il est principalement utilisé pour les scripts côté serveur, où JavaScript est utilisé pour produire du contenu Web dynamique avant que la page ne soit envoyée au navigateur Web de l'utilisateur.
  • Caractéristiques clés :
    • Architecture basée sur les événements : NodeJS utilise un modèle d'E/S non bloquant et piloté par les événements, ce qui le rend efficace et léger.
    • Single-Threaded : Bien que monothread, NodeJS gère les opérations simultanées en utilisant sa nature asynchrone et la boucle d'événements.
    • Construit sur V8 : NodeJS est construit sur le moteur JavaScript V8 de Google Chrome, ce qui le rend extrêmement rapide dans l'exécution du code JavaScript.

Comment NodeJS fonctionne-t-il en arrière-plan ?

  • Boucle d'événement :

    • NodeJS fonctionne sur une boucle d'événements à thread unique, ce qui lui permet de gérer plusieurs requêtes simultanées sans bloquer le thread.
    • Phases de la boucle d'événement :
    • Timers : exécute les rappels programmés par setTimeout() et setInterval().
    • Rappels en attente : exécute les rappels d'E/S différés à la prochaine itération de boucle.
    • Idle, Prepare : utilisé en interne par NodeJS.
    • Poll : récupère les nouveaux événements d'E/S et exécute les rappels liés aux E/S.
    • Check : exécute les rappels programmés par setImmediate().
    • Close Callbacks : exécute les rappels d'événements de fermeture.
  • E/S non bloquantes : NodeJS gère les opérations d'E/S de manière asynchrone, ce qui signifie qu'il n'attend pas la fin des opérations avant de passer à la tâche suivante.

Exemple :

  const fs = require('fs');

  console.log("Start");

  // Reading a file asynchronously
  fs.readFile('example.txt', 'utf8', (err, data) => {
      if (err) throw err;
      console.log(data);
  });

  console.log("End");
Copier après la connexion

Sortie :

  Start
  End
  (contents of example.txt)
Copier après la connexion

Explication :

  • NodeJS continue d'exécuter le code après l'appel de la fonction fs.readFile(), sans attendre que le fichier soit lu. Cela démontre son modèle d'E/S non bloquant.

Que sont les modules dans NodeJS ?

  • Définition : Les modules sont des blocs de code encapsulé qui communiquent avec une application externe en fonction de leurs fonctionnalités associées.
  • Types de modules :
    • Modules de base : intégrés à NodeJS (par exemple, fs, http, path, etc.).
    • Modules locaux : Créés par les utilisateurs pour organiser et structurer le code.
    • Modules tiers : installés via npm (par exemple, express, lodash).

Façons d'importer et d'exporter des modules en JavaScript et NodeJS

En JavaScript (modules ES6) :

  • Exportation :
  // Named export
  export const add = (a, b) => a + b;

  // Default export
  export default function subtract(a, b) {
      return a - b;
  }
Copier après la connexion
  • Importation :
  // Named import
  import { add } from './math.js';

  // Default import
  import subtract from './math.js';
Copier après la connexion

Dans NodeJS (modules CommonJS) :

  • Exportation :
  // Using module.exports
  module.exports.add = (a, b) => a + b;

  // Using exports shorthand
  exports.subtract = (a, b) => a - b;
Copier après la connexion
  • Importation :
  // Importing modules
  const math = require('./math.js');
  const add = math.add;
  const subtract = math.subtract;
Copier après la connexion

Qu’est-ce que la gestion des fichiers dans NodeJS ?

  • Définition : la gestion des fichiers dans NodeJS vous permet de travailler avec le système de fichiers de votre machine, notamment la lecture, l'écriture, la mise à jour et la suppression de fichiers.

Fonctions importantes :

  • Certaines des fonctions les plus importantes du module fs :
    • fs.readFile() : lit de manière asynchrone le contenu d'un fichier.
    • fs.writeFile() : écrit de manière asynchrone des données dans un fichier, en remplaçant le fichier s'il existe déjà.
    • fs.appendFile() : ajoute des données à un fichier. Si le fichier n'existe pas, il crée un nouveau fichier.
    • fs.unlink() : Supprime un fichier.
    • fs.rename() : renomme un fichier.

Exemple :

  const fs = require('fs');

  // Writing to a file
  fs.writeFile('example.txt', 'Hello, NodeJS!', (err) => {
      if (err) throw err;
      console.log('File written successfully.');

      // Reading the file
      fs.readFile('example.txt', 'utf8', (err, data) => {
          if (err) throw err;
          console.log('File contents:', data);

          // Appending to the file
          fs.appendFile('example.txt', ' This is an appended text.', (err) => {
              if (err) throw err;
              console.log('File appended successfully.');

              // Renaming the file
              fs.rename('example.txt', 'newExample.txt', (err) => {
                  if (err) throw err;
                  console.log('File renamed successfully.');

                  // Deleting the file
                  fs.unlink('newExample.txt', (err) => {
                      if (err) throw err;
                      console.log('File deleted successfully.');
                  });
              });
          });
      });
  });
Copier après la connexion

Sortie :

  File written successfully.
  File contents: Hello, NodeJS!
  File appended successfully.
  File renamed successfully.
  File deleted successfully.
Copier après la connexion

Comment créer un serveur dans NodeJS ?

  • Utilisation du module http : Le module http est un module principal de NodeJS qui vous permet de créer un serveur qui écoute les requêtes sur un port spécifique et envoie des réponses.

Exemple :

  const http = require('http');

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

  // Listening on port 3000
  server.listen(3000, '127.0.0.1', () => {
      console.log('Server running at http://127.0.0.1:3000/');
  });
Copier après la connexion

Sortie :

  Server running at http://127.0.0.1:3000/
Copier après la connexion
  • Explanation: The server responds with "Hello, World!" every time it receives a request. The server listens on localhost (127.0.0.1) at port 3000.

What is an HTTP Module?

  • Definition: The http module in NodeJS provides functionalities to create HTTP servers and clients.

Important Functions?

  • Some of the most important functions of HTTP module are:
    • http.createServer(): Creates an HTTP server that listens to requests and sends responses.
    • req.method: Retrieves the request method (GET, POST, etc.).
    • req.url: Retrieves the URL of the request.
    • res.writeHead(): Sets the status code and headers for the response.
    • res.end(): Signals to the server that all of the response headers and body have been sent.

Example:

  const http = require('http');

  const server = http.createServer((req, res) => {
      if (req.url === '/') {
          res.writeHead(200, { 'Content-Type': 'text/plain' });
          res.end('Welcome to the homepage!\n');
      } else if (req.url === '/about') {
          res.writeHead(200, { 'Content-Type': 'text/plain' });
          res.end('Welcome to the about page!\n');
      } else {
          res.writeHead(404, { 'Content-Type': 'text/plain' });
          res.end('404 Not Found\n');
      }
  });

  server.listen(3000, '127.0.0.1', () => {
      console.log('Server running at http://127.0.0.1:3000/');
  });
Copier après la connexion

Output:

  • If you navigate to http://127.0.0.1:3000/, the server will display "Welcome to the homepage!".
  • If you navigate to http://127.0.0.1:3000/about, the server will display "Welcome to the about page!".
  • If you navigate to any other URL, the server will display "404 Not Found".

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!

source:dev.to
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal