


Un guide de démarrage pour utiliser Express Framework pour Node.js_node.js
Introduction à Express
npm fournit un grand nombre de modules tiers, dont de nombreux frameworks web, comme Express, un framework web léger dont nous parlerons dans ce chapitre.
Express est un framework de développement d'applications Web node.js simple et flexible. Il fournit une série de fonctions puissantes, telles que : l'analyse de modèles, le service de fichiers statiques, le middleware, le contrôle de routage, etc., et peut également utiliser des plug-ins. ou intégrations D'autres modules vous aident à créer diverses applications Web et pour appareils mobiles. Il s'agit actuellement du framework de développement Web le plus populaire basé sur Node.js et prend en charge Ejs, jade et d'autres modèles, afin que vous puissiez créer rapidement un site Web avec des fonctions complètes.
D'accord, commençons !
1.Installation NPM
npm install express
2. Obtenez et citez
var express = require('express'); var app = express();
Grâce à la variable « app », nous pouvons appeler diverses méthodes d'expression. Le plaisir ne fait que commencer, continuez votre bon travail !
Créer une application
Après avoir pris connaissance du framework Express, nous avons commencé à créer notre première application express.
Ajoutez le contenu suivant au fichier principal de notre projet par défaut app.js :
var express = require('express'); var app = express(); app.get('/', function (request, response) { response.send('Hello World!'); }); app.listen(80);
Remarque : Dans les cours suivants, nous utiliserons le port 80 pour écouter les demandes.
Après l'avoir ajouté, vérifiez le contenu du navigateur via « Adresse de test » dans la colonne de droite. Lorsque vous voyez le contenu « Hello World ! », cela signifie qu'une simple application express a été créée avec succès.
obtenir la demande
Auparavant, nous avons implémenté une application express simple. Nous allons maintenant commencer à décrire en détail son implémentation spécifique. Tout d'abord, apprenons les méthodes courantes d'Express.
méthode get - gère les requêtes GET émises par le client en fonction du chemin de la requête.
Format :
app.get(path,function(request, response));
path est le chemin de la requête, et le deuxième paramètre est la fonction de rappel pour traiter la requête. Il existe deux paramètres, request et réponse, qui représentent les informations de requête et les informations de réponse.
Exemple ci-dessous :
var express = require('express'); var app = express(); app.get('/', function(request, response) { response.send('Welcome to the homepage!'); }); app.get('/about', function(request, response) { response.send('Welcome to the about page!'); }); app.get("*", function(request, response) { response.send("404 error!"); }); app.listen(80);
Dans l'exemple ci-dessus, la méthode de traitement du chemin d'accès à la page, du chemin racine et de tous les chemins est spécifiée. Et dans la fonction de rappel, utilisez la méthode send de la réponse HTTP pour envoyer une chaîne au navigateur.
Référez-vous au code ci-dessus, essayez de définir vous-même un chemin de demande d'obtention, puis accédez à l'adresse via le navigateur pour voir si la demande peut aboutir.
Middleware
Le middleware est une fonction qui traite les requêtes HTTP et est utilisée pour effectuer diverses tâches spécifiques, telles que vérifier si l'utilisateur est connecté, analyser les données et d'autres tâches qui doivent être effectuées avant que les données ne soient finalement envoyées à l'utilisateur. . Sa plus grande caractéristique est qu'après qu'un middleware l'a traitée, les données correspondantes peuvent être transmises au middleware suivant.
2. Un middleware qui n'effectue aucune opération et ne transmet que l'objet requête, probablement comme ceci :
function Middleware(request, response, next) { next(); }
Le suivant dans le code ci-dessus est la fonction de rappel du middleware. S'il prend un paramètre, cela signifie générer une erreur, et le paramètre est le texte de l'erreur.
function Middleware(request, response, next) { next('出错了!'); }
Après la génération d'une erreur, le middleware suivant ne sera plus exécuté jusqu'à ce qu'une fonction de gestion des erreurs soit trouvée. Si la méthode suivante n'est pas appelée, les fonctions enregistrées ultérieurement ne seront pas exécutées.
Utilisation de base de toutes les fonctions
Contrairement à la fonction get, la fonction app.all() peut correspondre à tous les verbes HTTP, ce qui signifie qu'elle peut filtrer les requêtes de tous les chemins. Si vous utilisez la fonction all pour définir le middleware, cela signifie que toutes les requêtes doivent passer par. ceci en premier.
Format :
app.all(path,function(request, response));
Comme indiqué ci-dessous, nous utilisons la fonction all pour définir les attributs d'en-tête de réponse avant la requête.
var express = require("express"); var app = express(); app.all("*", function(request, response, next) { response.writeHead(200, { "Content-Type": "text/html;charset=utf-8" }); //设置响应头属性值 next(); }); app.get("/", function(request, response) { response.end("欢迎来到首页!"); }); app.get("/about", function(request, response) { response.end("欢迎来到about页面!"); }); app.get("*", function(request, response) { response.end("404 - 未找到!"); }); app.listen(80);
Le "*" dans les paramètres de code ci-dessus signifie qu'il est valable pour tous les chemins. Cette méthode est particulièrement utile lors du traitement d'un chemin de préfixe spécifique ou de n'importe quel chemin. Peu importe que nous demandions un chemin, elle passera par la fonction all. à l'avance.
Si cela s'affiche, que se passera-t-il si nous ignorons toutes les fonctions ? Essayez-le vous-même ?
utiliser l'utilisation de base 1
use est la méthode express d’appel du middleware, et elle renvoie une fonction.
Format :
app.use([path], function(request, response, next){}); //可选参数path默认为"/"。
1. Utiliser un middleware
app.use(express.static(path.join(__dirname, '/')));
Comme ci-dessus, nous utilisons la fonction use pour appeler le middleware express afin de définir le chemin d'accès au répertoire de fichiers statique (supposé être le chemin racine ici).
2. Comment appeler deux middlewares en continu, comme le montre l'exemple suivant :
var express = require('express'); var app = express(); app.use(function(request, response, next){ console.log("method:"+request.method+" ==== "+"url:"+request.url); next(); }); app.use(function(request, response){ response.writeHead(200, { "Content-Type": "text/html;charset=utf-8" }); response.end('示例:连续调用两个中间件'); }); app.listen(80);
回调函数的next参数,表示接受其他中间件的调用,函数体中的next(),表示将请求数据传递给下一个中间件。
上面代码先调用第一个中间件,在控制台输出一行信息,然后通过next(),调用第二个中间件,输出HTTP回应。由于第二个中间件没有调用next方法,所以req对象就不再向后传递了。
use基本用法2
use方法不仅可以调用中间件,还可以根据请求的网址,返回不同的网页内容,如下示例:
var express = require("express"); var app = express(); app.use(function(request, response, next) { if(request.url == "/") { response.send("Welcome to the homepage!"); }else { next(); } }); app.use(function(request, response, next) { if(request.url == "/about") { response.send("Welcome to the about page!"); }else { next(); } }); app.use(function(request, response) { response.send("404 error!"); }); app.listen(80);
上面代码通过request.url属性,判断请求的网址,从而返回不同的内容。
回调函数
Express回调函数有两个参数,分别是request(简称req)和response(简称res),request代表客户端发来的HTTP请求,request代表发向客户端的HTTP回应,这两个参数都是对象。示例如下:
function(req, res) { });
在后面的学习中,我们会经常和它打交道,牢牢记住它的格式吧!
获取主机名、路径名
今天我们就先来学习如何使用req对象来处理客户端发来的HTTP请求。
req.host返回请求头里取的主机名(不包含端口号)。
req.path返回请求的URL的路径名。
如下示例:
var express = require('express'); var app = express(); app.get("*", function(req, res) { console.log(req.path); res.send("req.host获取主机名,req.path获取请求路径名!"); }); app.listen(80);
试一试在浏览器中输入任意一个请求路径,通过req查看主机名或请求路径。
query基本用法
query是一个可获取客户端get请求路径参数的对象属性,包含着被解析过的请求参数对象,默认为{}。
var express = require('express'); var app = express(); app.get("*", function(req, res) { console.log(req.query.参数名); res.send("测试query属性!"); }); app.listen(80);
通过req.query获取get请求路径的对象参数值。
格式:req.query.参数名;请求路径如下示例:
例1: /search?n=Lenka
req.query.n // "Lenka"
例2: /shoes?order=desc&shoe[color]=blue&shoe[type]=converse
req.query.order // "desc" req.query.shoe.color // "blue" req.query.shoe.type // "converse"
试一试get请求一个带参数路径,使用“req.query.参数名”方法获取请求参数值。
param基本用法
和属性query一样,通过req.param我们也可以获取被解析过的请求参数对象的值。
格式:req.param("参数名");请求路径如下示例:
例1: 获取请求根路径的参数值,如/?n=Lenka,方法如下:
var express = require('express'); var app = express(); app.get("/", function(req, res) { console.log(req.param("n")); //Lenka res.send("使用req.param属性获取请求根路径的参数对象值!"); }); app.listen(80);
例2:我们也可以获取具有相应路由规则的请求对象,假设路由规则为 /user/:name/,请求路径/user/mike,如下:
app.get("/user/:name/", function(req, res) { console.log(req.param("name")); //mike res.send("使用req.param属性获取具有路由规则的参数对象值!"); });
PS:所谓“路由”,就是指为不同的访问路径,指定不同的处理方法。
看了上面的示例,试一试使用req.param属性解析一个请求路径对象,并获取请求参数值。
params基本用法
和param相似,但params是一个可以解析包含着有复杂命名路由规则的请求对象的属性。
格式:req.params.参数名;
例1. 如上课时请求根路径的例子,我们就可以这样获取,如下:
var express = require('express'); var app = express(); app.get("/user/:name/", function(req, res) { console.log(req.params.name); //mike res.send("使用req.params属性获取具有路由规则的参数对象值!"); }); app.listen(80);
查看运行结果,和param属性功能是一样的,同样获取name参数值。
例2:当然我们也可以请求复杂的路由规则,如/user/:name/:id,假设请求地址为:/user/mike/123,如下:
app.get("/user/:name/:id", function(req, res) { console.log(req.params.id); //"123" res.send("使用req.params属性复杂路由规则的参数对象值!"); });
对于请求地址具有路由规则的路径来说,属性params比param属性是不是又强大了那么一点点呢!
send基本用法
send()方法向浏览器发送一个响应信息,并可以智能处理不同类型的数据。格式如下: res.send([body|status], [body]);
1.当参数为一个String时,Content-Type默认设置为"text/html"。
res.send('Hello World'); //Hello World
2.当参数为Array或Object时,Express会返回一个JSON。
res.send({ user: 'tobi' }); //{"user":"tobi"} res.send([1,2,3]); //[1,2,3]
3.当参数为一个Number时,并且没有上面提到的任何一条在响应体里,Express会帮你设置一个响应体,比如:200会返回字符"OK"。
res.send(200); // OK res.send(404); // Not Found res.send(500); // Internal Server Error
send方法在输出响应时会自动进行一些设置,比如HEAD信息、HTTP缓存支持等等。

Différents moteurs JavaScript ont des effets différents lors de l'analyse et de l'exécution du code JavaScript, car les principes d'implémentation et les stratégies d'optimisation de chaque moteur diffèrent. 1. Analyse lexicale: convertir le code source en unité lexicale. 2. Analyse de la grammaire: générer un arbre de syntaxe abstrait. 3. Optimisation et compilation: générer du code machine via le compilateur JIT. 4. Exécuter: Exécutez le code machine. Le moteur V8 optimise grâce à une compilation instantanée et à une classe cachée, SpiderMonkey utilise un système d'inférence de type, résultant en différentes performances de performances sur le même code.

Les applications de JavaScript dans le monde réel incluent la programmation côté serveur, le développement des applications mobiles et le contrôle de l'Internet des objets: 1. La programmation côté serveur est réalisée via Node.js, adaptée au traitement de demande élevé simultané. 2. Le développement d'applications mobiles est effectué par le reactnatif et prend en charge le déploiement multiplateforme. 3. Utilisé pour le contrôle des périphériques IoT via la bibliothèque Johnny-Five, adapté à l'interaction matérielle.

J'ai construit une application SAAS multi-locataire fonctionnelle (une application EdTech) avec votre outil technologique quotidien et vous pouvez faire de même. Premièrement, qu'est-ce qu'une application SaaS multi-locataire? Les applications saas multi-locataires vous permettent de servir plusieurs clients à partir d'un chant

Cet article démontre l'intégration frontale avec un backend sécurisé par permis, construisant une application fonctionnelle EdTech SaaS en utilisant Next.js. Le frontend récupère les autorisations des utilisateurs pour contrôler la visibilité de l'interface utilisateur et garantit que les demandes d'API adhèrent à la base de rôles

JavaScript est le langage central du développement Web moderne et est largement utilisé pour sa diversité et sa flexibilité. 1) Développement frontal: construire des pages Web dynamiques et des applications à une seule page via les opérations DOM et les cadres modernes (tels que React, Vue.js, Angular). 2) Développement côté serveur: Node.js utilise un modèle d'E / S non bloquant pour gérer une concurrence élevée et des applications en temps réel. 3) Développement des applications mobiles et de bureau: le développement de la plate-forme multiplateuse est réalisé par réact noral et électron pour améliorer l'efficacité du développement.

Les dernières tendances de JavaScript incluent la montée en puissance de TypeScript, la popularité des frameworks et bibliothèques modernes et l'application de WebAssembly. Les prospects futurs couvrent des systèmes de type plus puissants, le développement du JavaScript côté serveur, l'expansion de l'intelligence artificielle et de l'apprentissage automatique, et le potentiel de l'informatique IoT et Edge.

JavaScript est la pierre angulaire du développement Web moderne, et ses principales fonctions incluent la programmation axée sur les événements, la génération de contenu dynamique et la programmation asynchrone. 1) La programmation axée sur les événements permet aux pages Web de changer dynamiquement en fonction des opérations utilisateur. 2) La génération de contenu dynamique permet d'ajuster le contenu de la page en fonction des conditions. 3) La programmation asynchrone garantit que l'interface utilisateur n'est pas bloquée. JavaScript est largement utilisé dans l'interaction Web, les applications à une page et le développement côté serveur, améliorant considérablement la flexibilité de l'expérience utilisateur et du développement multiplateforme.

Python est plus adapté à la science des données et à l'apprentissage automatique, tandis que JavaScript est plus adapté au développement frontal et complet. 1. Python est connu pour sa syntaxe concise et son écosystème de bibliothèque riche, et convient à l'analyse des données et au développement Web. 2. JavaScript est le cœur du développement frontal. Node.js prend en charge la programmation côté serveur et convient au développement complet.


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

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

Version Mac de WebStorm
Outils de développement JavaScript utiles

MantisBT
Mantis est un outil Web de suivi des défauts facile à déployer, conçu pour faciliter le suivi des défauts des produits. Cela nécessite PHP, MySQL et un serveur Web. Découvrez nos services de démonstration et d'hébergement.

SublimeText3 Linux nouvelle version
Dernière version de SublimeText3 Linux

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