Table des matières
1. Qu'est-ce que le middleware Express
2. Processus d'appel du middleware express
3. Le format middleware
4. Le rôle de la fonction next()
5. Middleware globalement efficace
6. Middleware efficace localement
7. Le rôle du middleware
8. Cinq points à noter à propos du middleware Express
9. Classification des middlewares express
Maison interface Web js tutoriel Qu'est-ce que le middleware Express ? Comment l'utiliser dans Node ?

Qu'est-ce que le middleware Express ? Comment l'utiliser dans Node ?

Feb 10, 2022 pm 07:01 PM
node

Qu’est-ce que le middleware Express ? Comment l'utiliser dans Node ? L'article suivant vous présentera l'utilisation simple du middleware Express. J'espère qu'il vous sera utile !

Qu'est-ce que le middleware Express ? Comment l'utiliser dans Node ?

1. Qu'est-ce que le middleware Express

Le middleware fait spécifiquement référence au lien de traitement intermédiaire des processus métier.

2. Processus d'appel du middleware express

Lorsqu'une requête atteint le serveur Express, plusieurs middlewares peuvent être appelés en continu pour prétraiter la requête.

3. Le format middleware

est essentiellement une fonction de traitement de fonction

Remarque : la liste formelle des paramètres de la fonction middleware doit contenir le paramètre suivant. La fonction de traitement de routage ne contient que req et res,

// next参数必须在最后一个传入
const mw = (req, res, next) => {
    ...
    // next()必须在最后调用
    next()
}
Copier après la connexion

4. Le rôle de la fonction next()

next est la clé pour réaliser l'appel continu de plusieurs middlewares. Cela signifie transférer la relation de circulation vers le middleware suivant. ou le routage.

5. Middleware globalement efficace

Toute requête initiée par le client déclenchera le middleware après avoir atteint le serveur, appelé middleware globalement efficace. En appelant server.use (fonction middleware), vous pouvez définir un middleware globalement efficace. L'exemple de code est le suivant :

const mw = (req, res, next) => {
    next()
}

const mw1 = (req, res, next) => {
    next()
}

// 全局生效的中间件,中间件调用顺序以传入顺序为准
server.use(mw,mw1)
Copier après la connexion

6. Middleware efficace localement

Le middleware local ne fonctionne que sur un chemin de routage spécifié Efficace

const mw = (req, res, next) => {
    next()
}
const mw1 = (req, res, next) => {
    next()
}
// 局部生效的中间件
server.get('/',mw,(req,res)=>{
    res.send('路径:/')
})



// 定义多个局部生效的中间件
// 1、直接逗号分隔
server.get('/',mw,mw1,(req,res)=>{
    res.send('路径:/')
})
// 2、或者使用数组包含
server.get('/',[mw,mw1],(req,res)=>{
    res.send('路径:/')
})
Copier après la connexion

7. Le rôle du middleware

Plusieurs middlewares partagent les mêmes req et res. Sur la base de cette fonctionnalité, nous pouvons ajouter uniformément des attributs ou des méthodes personnalisés aux objets req ou res dans le middleware en amont pour une utilisation par le middleware ou le routage en aval.

const mw = (req, res, next) => {
    // 添加属性
    req.startTime=new Date()
    next()
}
Copier après la connexion

8. Cinq points à noter à propos du middleware Express

  • Assurez-vous d'enregistrer le middleware avant le routage

  • Les demandes envoyées par le client peuvent continuellement appeler plusieurs middlewares pour le traitement

  • Après l'exécution de l'entreprise code du middleware, n'oubliez pas d'appeler la fonction next()

  • Afin d'éviter toute confusion dans la logique du code, n'écrivez pas de code supplémentaire après avoir appelé la fonction next()

  • Lors de l'appel continu de plusieurs middlewares, partager des objets req et res entre plusieurs middlewares

9. Classification des middlewares express

  • Middleware au niveau de l'application

  • Middleware au niveau de la route

  • Middleware au niveau de l'erreur

  • Express construit- dans le middleware

  • Middleware tiers

Introduction détaillée :

  • Middleware au niveau de l'application

    Via app.use() ou app.get( ) ou app.post(), le middleware lié à l'instance d'application est appelée middleware au niveau de l'application. L'exemple de code est le suivant :

    // 全局生效的中间件(应用级别的中间件)
    server.use(mw,mw1)
    // 局部生效的中间件(应用级别的中间件)
    server.get('/',mw,mw1,(req,res)=>{
        res.send(`请求进入服务器的时间:${req.startTime}`)
    })
    Copier après la connexion
  • Middleware au niveau du routage

    lié à l'instance express.Router() Le middleware est appelé middleware au niveau du routage. Son utilisation n'est pas différente de celle d'un middleware au niveau de l'application. Cependant, le middleware au niveau de l'application est lié à l'instance d'application et le middleware au niveau du routage est lié à l'instance du routeur. L'exemple de code est le suivant :

    const router = require('./router/router')
    // 路由级别的中间件
    router.use((req,res,next)=>{
        next()
    })
    Copier après la connexion
  • Middleware au niveau de l'erreur

    Le rôle du middleware au niveau de l'erreur. : Spécialisé Utilisé pour capturer les erreurs anormales qui se produisent tout au long du projet afin d'éviter que le projet ne plante anormalement.

    Format : La fonction de traitement des fonctions du middleware de niveau d'erreur doit avoir 4 paramètres formels. L'ordre des paramètres formels d'avant en arrière est (err, req, res, next).

    Remarque : le middleware de niveau d'erreur doit être enregistré après toutes les routes !

    // 人为制造错误
    server.get('/err', (req, res) => {
        throw new Error('人为抛出错误!!!')
        res.send('err Page')
    })
    // 定义错误级别的中间件
    server.use((err, req, res, next) => {
        console.log('发生了错误:' + err.message);
        res.send('Error:'+err.message)
        next()
    })
    Copier après la connexion
  • Le middleware intégré d'Express

    Depuis la version Express 4.16.0, Express intègre 3 middlewares couramment utilisés, qui sont extrêmement améliorés. l'efficacité de développement et l'expérience des projets Express :

    • express.static est un middleware intégré qui héberge rapidement des ressources statiques, telles que : des fichiers HTML, des images, des styles CSS, etc. (pas de compatibilité)

    • express .json Analyser les données du corps de la requête au format JSON (avec compatibilité, disponible uniquement dans la version 4.16.0+)

    • express.urlencoded Analyser les données du corps de la requête au format codé URL (avec compatibilité, disponible uniquement dans la version 4.16.0+) ) Disponible dans)

    // 配置解析application/json格式数据的内置中间件
    server.use(express.json())
    // 配置解析application/x-www-form-urlencoded格式数据的内置中间件
    server.use(express.urlencoded({
        extended: false
    }))
    // 测试解析json的内置中间件
    server.post('/user',(req,res)=>{
        // 在服务器,可以使用req.body这个属性来接受客户端发送过来的请求数据
        // 默认情况下,如果不配置解析表单数据的中间件,则req.body默认等于undefined
        console.log(req.body);
        res.send('ok')
    })
    
    // 测试解析urlencoded的内置中间件
    server.post('/book',(req,res)=>{
        console.log(req.body)
        res.send('book ok')
    })
    Copier après la connexion
  • Le middleware tiers

    n'est pas officiellement intégré à Express, mais est développé par un tiers, appelé middleware tiers. Dans le projet, vous pouvez télécharger et configurer des middlewares tiers à la demande, améliorant ainsi l'efficacité du développement du projet. Par exemple : dans les versions antérieures à express@4.16.0, le middleware tiers body-parser était souvent utilisé pour analyser les données du corps de la requête. Les étapes d'utilisation sont les suivantes : express@4.16.0之前的版本中,经常使用body-parser这个第三方中间件,来解析请求体数据。使用步骤如下:

    • 运行npm install body-parser安装中间件

    • 使用require导入中间件

    • 调用server.use()

      🎜🎜Exécutez npm install body-parser pour installer le middleware 🎜🎜🎜🎜Utilisez require pour importer le middleware 🎜🎜🎜🎜Appelez server.use( ) Enregistrez-vous et utilisez le middleware 🎜

    Remarque : le middleware express.urlencoded intégré d'Express est en outre encapsulé sur la base de l'analyseur de corps de middleware tiers.

  • Pour plus de connaissances sur les nœuds, veuillez visiter : tutoriel nodejs !

    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 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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Commandes de chat et comment les utiliser
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment supprimer un nœud dans NVM Comment supprimer un nœud dans NVM Dec 29, 2022 am 10:07 AM

Comment supprimer un nœud avec nvm : 1. Téléchargez « nvm-setup.zip » et installez-le sur le lecteur C ; 2. Configurez les variables d'environnement et vérifiez le numéro de version via la commande « nvm -v » 3. Utilisez la commande « nvm » ; install" commande Installer le nœud ; 4. Supprimez le nœud installé via la commande "nvm uninstall".

Comment utiliser Express pour gérer le téléchargement de fichiers dans un projet de nœud Comment utiliser Express pour gérer le téléchargement de fichiers dans un projet de nœud Mar 28, 2023 pm 07:28 PM

Comment gérer le téléchargement de fichiers ? L'article suivant vous expliquera comment utiliser Express pour gérer les téléchargements de fichiers dans le projet de nœud. J'espère qu'il vous sera utile !

Comment faire la mise en miroir Docker du service Node ? Explication détaillée de l'optimisation extrême Comment faire la mise en miroir Docker du service Node ? Explication détaillée de l'optimisation extrême Oct 19, 2022 pm 07:38 PM

Durant cette période, je développais un service HTML dynamique commun à toutes les catégories de documents Tencent. Afin de faciliter la génération et le déploiement des accès aux différentes catégories, et pour suivre la tendance de migration vers le cloud, j'ai envisagé d'utiliser Docker pour corriger. contenu du service et gérer les versions des produits de manière unifiée. Cet article partagera l'expérience d'optimisation que j'ai accumulée en train de servir Docker pour votre référence.

Une analyse approfondie de l'outil de gestion de processus de Node « pm2 » Une analyse approfondie de l'outil de gestion de processus de Node « pm2 » Apr 03, 2023 pm 06:02 PM

Cet article partagera avec vous l'outil de gestion de processus de Node "pm2" et expliquera pourquoi pm2 est nécessaire, comment installer et utiliser pm2, j'espère qu'il sera utile à tout le monde !

Enseignement du nœud PI: Qu'est-ce qu'un nœud PI? Comment installer et configurer le nœud PI? Enseignement du nœud PI: Qu'est-ce qu'un nœud PI? Comment installer et configurer le nœud PI? Mar 05, 2025 pm 05:57 PM

Explication détaillée et guide d'installation pour les nœuds de pignon Cet article introduira l'écosystème de pignon en détail - nœuds PI, un rôle clé dans l'écosystème de pignon et fournir des étapes complètes pour l'installation et la configuration. Après le lancement du réseau de test de la blockchain pèse, les nœuds PI sont devenus une partie importante de nombreux pionniers participant activement aux tests, se préparant à la prochaine version du réseau principal. Si vous ne connaissez pas encore Pinetwork, veuillez vous référer à ce qu'est Picoin? Quel est le prix de l'inscription? PI Utilisation, exploitation minière et sécurité. Qu'est-ce que Pinetwork? Le projet Pinetwork a commencé en 2019 et possède sa pièce exclusive de crypto-monnaie PI. Le projet vise à en créer un que tout le monde peut participer

Parlons de la façon d'utiliser pkg pour empaqueter des projets Node.js dans des fichiers exécutables. Parlons de la façon d'utiliser pkg pour empaqueter des projets Node.js dans des fichiers exécutables. Dec 02, 2022 pm 09:06 PM

Comment empaqueter le fichier exécutable nodejs avec pkg ? L'article suivant vous expliquera comment utiliser pkg pour empaqueter un projet Node dans un fichier exécutable. J'espère qu'il vous sera utile !

Que faire si le nœud npm gyp échoue Que faire si le nœud npm gyp échoue Dec 29, 2022 pm 02:42 PM

npm node gyp a échoué car les versions de « node-gyp.js » et « Node.js » ne correspondaient pas. La solution : 1. Videz le cache du nœud via « npm cache clean -f » 2. Via « npm install - ». g n" Installez le module n ; 3. Installez la version "node v12.21.0" via la commande "n v12.21.0".

Authentification basée sur des jetons avec Angular et Node Authentification basée sur des jetons avec Angular et Node Sep 01, 2023 pm 02:01 PM

L'authentification est l'une des parties les plus importantes de toute application Web. Ce didacticiel traite des systèmes d'authentification basés sur des jetons et de leurs différences par rapport aux systèmes de connexion traditionnels. À la fin de ce didacticiel, vous verrez une démo entièrement fonctionnelle écrite en Angular et Node.js. Systèmes d'authentification traditionnels Avant de passer aux systèmes d'authentification basés sur des jetons, examinons les systèmes d'authentification traditionnels. L'utilisateur fournit son nom d'utilisateur et son mot de passe dans le formulaire de connexion et clique sur Connexion. Après avoir effectué la demande, authentifiez l'utilisateur sur le backend en interrogeant la base de données. Si la demande est valide, une session est créée à l'aide des informations utilisateur obtenues à partir de la base de données et les informations de session sont renvoyées dans l'en-tête de réponse afin que l'ID de session soit stocké dans le navigateur. Donne accès aux applications soumises à

See all articles