Maison >interface Web >Questions et réponses frontales >Méthodes et techniques de traitement des requêtes à l'aide de Node.js

Méthodes et techniques de traitement des requêtes à l'aide de Node.js

PHPz
PHPzoriginal
2023-04-06 08:52:561029parcourir

Node.js est un langage de programmation côté serveur basé sur JavaScript. Son émergence rend le développement Web plus rapide et plus efficace. Le principal avantage de Node.js est sa capacité à gérer les opérations d’E/S ainsi que son adaptabilité, son évolutivité et sa facilité d’utilisation. Dans cet article, nous explorerons les méthodes et techniques permettant de gérer les requêtes à l'aide de Node.js.

1. Le module HTTP de Node.js

Le module HTTP de Node.js fournit un moyen de gérer les requêtes HTTP, ce qui peut vous aider à créer rapidement un serveur Web simple et efficace. Le module HTTP contient des classes, fonctions et événements importants :

  1. http.createServer() - Créez une instance de serveur HTTP.
  2. request - objet de requête, créé automatiquement lorsque le client initie une requête HTTP.
  3. response - Objet de réponse utilisé pour envoyer une réponse HTTP au client.
  4. listen() - Écoutez le port et attendez que le client demande une connexion.

Voici un exemple d'utilisation du module HTTP pour créer un serveur Web :

const http = require('http');
const server = http.createServer((req, res) => {
    res.writeHead(200, {'Content-Type': 'text/plain'});
    res.end('Hello World!');
});
server.listen(3000, () => {
    console.log('Server running at http://localhost:3000');
});

Le code ci-dessus crée un serveur Web fonctionnant sur le port local 3000. Chaque fois que le client envoie une requête au serveur, le serveur renvoie " Bonjour tout le monde ! »

2. Processus de traitement des requêtes

Le processus de traitement des requêtes de Node.js est très simple, comme le montre la figure ci-dessous :

Méthodes et techniques de traitement des requêtes à laide de Node.js

Comme le montre la figure ci-dessus, lorsque le client envoie une requête au serveur Web , le serveur appellera le module HTTP. La fonction createServer crée une instance de serveur HTTP. A ce moment, le serveur écoutera le port spécifié et attendra la demande de connexion du client. Une fois que le client établit une connexion, un objet de requête (requête) est créé, qui contient toutes les informations envoyées par le client, telles que les en-têtes de requête, les corps de requête, etc. Le serveur peut traiter la demande en fonction de l'objet de demande, générer un objet de réponse (réponse) et envoyer l'objet de réponse au client. Le client ferme la connexion après avoir reçu la réponse.

3. Traitement des demandes

Dans Node.js, vous pouvez obtenir diverses informations pour traiter les demandes via l'objet req, y compris les en-têtes de demande, les corps de demande, etc. Dans le même temps, nous devons également comprendre le concept de routage (routeur) dans Node.js. Le routage est un moyen de déterminer la manière dont une application répond aux requêtes, notamment les chemins d'URL et les méthodes de requête HTTP.

Ce qui suit est un exemple de traitement des requêtes Get et Post :

const http = require('http');
const querystring = require('querystring');

http.createServer((req, res) => {
    let method = req.method;
    let url = req.url;
    let body = '';
    req.on('data', (chunk) => {
        body += chunk;
    });
    req.on('end', () => {
        let params;
        if (method == 'GET') {
            params = url.split('?')[1];
            console.log(params);
        } else {
            params = querystring.parse(body);
            console.log(params);
        }
        res.end('Hello ' + params.name);
    });
}).listen(3000, () => {
    console.log('Server running at http://localhost:3000');
});

Le code ci-dessus montre comment traiter les requêtes Get et Post et utiliser le module de chaîne de requête pour analyser le corps de la requête. Lorsque l'URL est http://localhost:3000/?name=Node.js, le serveur affichera "Bonjour Node.js". Lors de l'envoi d'une requête Post, le serveur affichera la valeur de l'attribut name dans le corps de la requête.

4. Restreindre l'accès et la gestion des erreurs

Dans le développement Web, nous devons souvent restreindre l'accès et la gestion des erreurs sur le serveur. Node.js fournit des modules intégrés pour accomplir ces tâches, notamment les erreurs http, cors, morgan et casque.

erreurs http : peut être utilisé pour créer des réponses d'erreur HTTP, telles que 404, 500, etc.

cors : peut être utilisé en middleware pour résoudre des problèmes inter-domaines.

morgan : peut être utilisé pour enregistrer les informations du journal sur chaque demande.

casque : vous pouvez augmenter la sécurité du serveur, par exemple en ajoutant des informations d'en-tête HTTP pour protéger le serveur de certaines attaques Web.

Ce qui suit est un exemple d'utilisation de la gestion des erreurs et de restriction d'accès :

const http = require('http');
const createError = require('http-errors');
const express = require('express');
const cors = require('cors');
const morgan = require('morgan');
const helmet = require('helmet');

const app = express();

// 添加错误管理中间件
app.use((err, req, res, next) => {
    if (err && err.status == 404) {
        res.status(404).send('404 not found');
    } else {
        res.status(500).send('500 Internal Server Error');
    }
});

// 使用中间件
app.use(cors());
app.use(morgan('combined'));
app.use(helmet());

// 定义路由
app.get('/', (req, res) => {
    res.send('Hello World!');
})

// 监听端口
http.createServer(app).listen(3000, () => {
    console.log('Server running at http://localhost:3000');
});

Le code ci-dessus montre comment utiliser le middleware de gestion des erreurs et de restriction d'accès. Parmi eux, des middlewares tels que http-errors, cors, morgan et casque peuvent être utilisés pour améliorer la sécurité et la disponibilité du serveur et réduire la complexité du code.

Résumé

Cet article présente les méthodes et techniques d'utilisation de Node.js pour gérer les requêtes, y compris le module HTTP, le processus de traitement des requêtes, le traitement des requêtes, la restriction d'accès et la gestion des erreurs, etc. Node.js a apporté des changements importants au développement Web, qui peuvent aider les programmeurs à raccourcir le cycle de développement et à améliorer l'efficacité du développement. Si vous avez encore des questions sur Node.js, vous pouvez vous référer à la documentation officielle ou visiter d'autres sites Web de didacticiels.

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