


Qu'est-ce que le middleware Express ? Comment l'utiliser dans 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 !
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() }
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)
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('路径:/') })
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() }
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 connexionMiddleware 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 connexionMiddleware 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 connexionLe 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 tiersbody-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导入中间件
-
调用
🎜🎜Exécutezserver.use()
npm install body-parser
pour installer le middleware 🎜🎜🎜🎜Utilisez require pour importer le middleware 🎜🎜🎜🎜Appelezserver.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!

Outils d'IA chauds

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

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

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

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

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

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.

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 !

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

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 !

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

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 à
