Qu'est-ce que Express.js?


440

Je suis un étudiant en Node.js .

  1. Qu'est-ce que Express.js ?
  2. À quoi sert-il avec Node.js?
  3. Pourquoi avons-nous réellement besoin d'Express.js? Comment est-il utile pour nous d'utiliser avec Node.js?
  4. Qu'est-ce que Redis ? Vient-il avec Express.js?

28
Faites défiler jusqu'à la réponse du wiki de la communauté (qui a +50 de prime). J'ai trouvé cela plus utile que la réponse indiquée.
Shishir Gupta

Réponses:


266

C'est trop simplifier, mais Express.js est à Node.js ce que Ruby on Rails ou Sinatra est à Ruby .

Express 3.x est un cadre d'application Web léger pour vous aider à organiser votre application Web dans une architecture MVC côté serveur. Vous pouvez utiliser une variété de choix pour votre langage de modèles (comme EJS , Jade et Dust.js ).

Vous pouvez ensuite utiliser une base de données comme MongoDB avec Mongoose (pour la modélisation) pour fournir un backend pour votre application Node.js. Express.js vous aide essentiellement à tout gérer, des itinéraires à la gestion des demandes et des vues.

Redis est un magasin de clés / valeurs - couramment utilisé pour les sessions et la mise en cache dans les applications Node.js. Vous pouvez en faire beaucoup plus, mais c'est pour cela que je l'utilise. J'utilise MongoDB pour des relations plus complexes, comme les relations utilisateur <-> ordre <-> élément de ligne. Il existe des modules (notamment connect-redis) qui fonctionneront avec Express.js. Vous devrez installer la base de données Redis sur votre serveur.

Voici un lien vers le guide Express 3.x: https://expressjs.com/en/3x/api.html


20
Express ressemble plus à sinatra qu'à rails.
demi

11
Express a été spécifiquement inspiré par sinatra. Sa caractéristique la plus importante est probablement le routage; il met également à disposition tous les middlewares fournis par connect (au point où toutes les applications, sauf les plus spécifiques, qui ont besoin des middlewares de connect, utiliseront probablement express).
ebohlman

Je dirais que redis est idéal pour les relations complexes en fait.
plus-

Le lien EJS est actuellement mort.
David Spector

Je ne comprends vraiment pas comment MVC est lié à Express. Si je me souviens bien, Express n'a pas de modèles ni de vues. C'est un framework basé sur un middleware, pas un framework MVC. Veuillez expliquer cela.
Gherman

382

1) Qu'est-ce qu'Express.js?

Express.js est un framework Node.js. C'est le framework le plus populaire à ce jour (le plus utilisé sur NPM).

Entrez la description de l'image ici.

Il est construit autour de la configuration et de la simplicité granulaire du middleware Connect. Certaines personnes comparent Express.js à Ruby Sinatra par rapport au Ruby on Rails volumineux et perspicace .

2) Quel est son objectif avec Node.js?

Que vous n'avez pas à répéter le même code encore et encore. Node.js est un mécanisme d' E / S de bas niveau doté d'un module HTTP. Si vous utilisez juste un module HTTP, beaucoup de travail comme l' analyse de la charge utile, les cookies, le stockage des sessions (en mémoire ou en Redis ), en sélectionnant le modèle de route droite en fonction des expressions régulières seront avoir à être mis en œuvre re. Avec Express.js, il est juste là pour vous.

3) Pourquoi avons-nous réellement besoin d'Express.js? Comment est-il utile pour nous d'utiliser avec Node.js?

La première réponse devrait répondre à votre question. Si non, essayez d'écrire un petit serveur API REST dans Node.js ordinaire (c'est-à-dire en utilisant uniquement les modules principaux), puis dans Express.js. Ce dernier vous prendra 5 à 10 fois moins de temps et de lignes de code.

Qu'est-ce que Redis? Vient-il avec Express.js?

Redis est un stockage de valeur-clé persistant rapide. Vous pouvez éventuellement l'utiliser pour stocker des sessions avec Express.js, mais vous n'en avez pas besoin. Par défaut, Express.js dispose d'un stockage en mémoire pour les sessions. Redis peut également être utilisé pour les tâches de mise en file d'attente, par exemple, les tâches de messagerie.

Consultez mon tutoriel sur le serveur API REST avec Express.js .

MVC mais pas tout seul

Express.js n'est pas un framework de contrôleur de vue de modèle en soi. Vous devez apporter vos propres bibliothèques de mappage relationnel objet telles que Mongoose pour MongoDB, Sequelize ( http://sequelizejs.com ) pour les bases de données SQL, Waterline ( https://github.com/balderdashy/waterline ) pour de nombreuses bases de données dans le empiler.

Alternatives

Autres frameworks Node.js à considérer ( https://www.quora.com/Node-js/Which-Node-js-framework-is-best-for-building-a-RESTful-API ):

MISE À JOUR: J'ai rassemblé cette ressource qui aide les gens à choisir les frameworks Node.js: http://nodeframework.com

MISE À JOUR2: Nous avons ajouté quelques statistiques GitHub à nodeframework.com afin que vous puissiez maintenant comparer le niveau de preuve sociale (étoiles GitHub) pour plus de 30 frameworks sur une seule page.

entrez la description de l'image ici

Un paquet entier:

API REST juste:

Ruby on Rails comme:

Sinatra comme:

Autre:

Middleware:

Générateurs de sites statiques:


Sera-t-il exact de dire que - Express.js est un module Node.js (que vous avez traité comme framework dans votre 1ère ligne). J'ai entendu le terme nodeJs moduleassez souvent. Le framework à l'intérieur d'un framework est un peu nouveau pour moi.
RBT

Oui, comme dans la pratique, Express EST un module Node Package Manager (npm) (alias un package) dans la mesure où il est ajouté à une application comme les autres modules de npm. (Si vous regardez le dossier source d'une application Node Express, vous verrez un dossier appelé node_modules. Il contiendra un sous-dossier appelé express.) Mais il est beaucoup plus utile que la plupart des autres modules du npm car il a un charge de modules dépendants qui fournissent efficacement au codeur d'application une API pour les tâches courantes. Cadre dans un cadre? Plus comme un cadre d'implémentation attachable à un cadre de création de serveur.
Trunk

15
  1. Qu'est-ce que Express.js?

Express.js est une infrastructure de serveur d'applications Web Node.js, conçue pour créer des applications Web monopages, multipages et hybrides. Il s'agit du framework de serveur standard de facto pour node.js.

Cadres construits sur Express.

Plusieurs frameworks Node.js populaires sont construits sur Express:

LoopBack: framework Node.js open source hautement extensible pour créer rapidement des API REST dynamiques de bout en bout.

Sails: framework MVC pour Node.js pour la création d'applications pratiques et prêtes pour la production.

Kraken: couche sécurisée et évolutive qui étend Express en fournissant structure et convention.

MEAN: Framework JavaScript fullstack estimé qui simplifie et accélère le développement d'applications Web.

  1. À quoi sert-il avec Node.js?
  2. Pourquoi avons-nous réellement besoin d'Express.js? Comment est-il utile pour nous d'utiliser avec Node.js?

Express ajoute un routage simple et une prise en charge du middleware Connect, permettant de nombreuses extensions et fonctionnalités utiles.

Par exemple,

  • Vous voulez des séances? C'est là
  • Vous voulez analyser le corps du POST / chaîne de requête? C'est là
  • Vous voulez des modèles faciles à travers le jade, la moustache, les ejs, etc.? C'est là
  • Vous voulez une gestion des erreurs gracieuse qui ne fera pas planter le serveur entier?

10
  1. Express.js est un framework web modulaire pour Node.js
  2. Il est utilisé pour faciliter la création d'applications et de services Web
  3. Express.js simplifie le développement et facilite l'écriture d'applications sécurisées, modulaires et rapides. Vous pouvez faire tout cela dans l'ancien Node.js, mais certains bogues peuvent (et vont) faire surface, y compris des problèmes de sécurité (par exemple, ne pas échapper une chaîne correctement)
  4. Redis est un système de base de données en mémoire connu pour ses performances rapides. Non, mais vous pouvez l'utiliser avec Express.js en utilisant un client redis

Je ne pourrais pas être plus concis que ça. Pour tous vos autres besoins et informations, Google est votre ami.


3

ExpressJS est un cadre d'application Web à nu sur le dessus de NodeJS.

Il peut être utilisé pour créer rapidement des WebApps, des API RESTFUL, etc.

Prend en charge plusieurs moteurs de modèles comme Jade, EJS.

ExpressJS ne conserve qu'une fonctionnalité minimaliste en tant que fonctionnalités de base et en tant que tel, aucun ORM ou DB n'est pris en charge par défaut. Mais avec un peu d'effort, les applications expressjs peuvent être intégrées à différentes bases de données.

Pour un guide de démarrage sur la création d'applications ExpressJS, consultez le lien suivant:

Tutoriel d'introduction à ExpressJS


3

Express est un cadre de module pour Node que vous pouvez utiliser pour des applications basées sur des serveurs qui "écouteront" toutes les demandes d'entrée / connexion des clients. Lorsque vous l'utilisez dans Node, cela signifie simplement que vous demandez l'utilisation du fichier Express intégré à partir de vos modules Node.

Express est la «colonne vertébrale» de nombreuses applications Web qui ont leur back-end dans NodeJS. D'après ce que je sais, son principal atout étant la providence d'un système de routage qui gère les services d '"interaction" entre 2 hôtes. Il existe de nombreuses alternatives pour cela, comme les voiles.


2

Express.js est un framework utilisé pour Node et il est le plus souvent utilisé comme application web pour node js.

Voici un lien vers une vidéo sur la façon de configurer rapidement une application de nœud avec https://www.youtube.com/watch?v=QEcuSSnqvck express


Explication impressionnante pour les débutants absolus!
Ankit Pandey

0

Express.js créé par TJ Holowaychuk et maintenant géré par la communauté. C'est l'un des frameworks les plus populaires dans le node.js. Express peut également être utilisé pour développer divers produits tels que des applications Web ou des API RESTful.Pour plus d'informations, veuillez lire sur le site officiel expressjs.com.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.