web-dev-qa-db-fra.com

Que fait Express.js dans la pile MEAN?

Je suis récemment entré dans AngularJS et j'adore ça. Pour un projet à venir, je cherche à utiliser la pile MEAN (MongoDB, Express, Angular, Node). Je connais assez bien Angular et j'ai une compréhension modeste des objectifs de MongoDB et de Node dans la pile. Cependant, je ne comprends pas vraiment quel est le but de Express.js. Est-ce essentiel pour la pile MEAN? À quoi la compareriez-vous dans une application MySQL, PHP, javascript traditionnelle? Que fait-il que les trois autres composants ne peuvent pas faire?

Aussi, si quelqu'un veut donner sa propre idée de la façon dont les quatre parties de la pile fonctionnent ensemble, ce serait formidable.

50
NicolasMoise
  • MongoDB = base de données 
  • Express.js = infrastructure Web principale
  • Angulaire = cadre frontal
  • Nœud = plate-forme back-end/infrastructure Web

Fondamentalement, Express vous permet de créer facilement des applications Web en fournissant une interface légèrement plus simple pour créer vos points de terminaison de demande, gérer les cookies, etc. par rapport à Vanilla Node. Vous pouvez le supprimer de l'équation, mais vous devrez alors travailler beaucoup plus pour créer votre application Web. Le nœud lui-même pourrait faire tout ce que fait express (express est implémenté avec nœud), mais express l'enveloppe simplement dans un paquet plus agréable.

Je comparerais Express à certains PHP frameworks Web de la pile que vous décrivez, quelque chose comme slim .

60
jakee

Vous pouvez considérer Express comme une ceinture utilitaire permettant de créer des applications Web avec Node.js. Il fournit des fonctions pour à peu près tout ce que vous devez faire pour créer un serveur Web. Si vous deviez écrire la même fonctionnalité avec Vanilla Node.js, vous auriez à écrire beaucoup plus de code. Voici quelques exemples de ce que fait Express:

  • Les itinéraires REST sont simplifiés avec des choses comme
    • app.get('/user/:id', function(req, res){ /* req.params('id') is avail */ });
  • Un système middleware qui vous permet de brancher différentes fonctions synchrones qui effectuent différentes tâches avec une demande ou une réponse, c.-à-d. authentification ou ajout de propriétés
    • app.use(function(req,res,next){ req.timestamp = new Date(); next(); });
  • Fonctions pour analyser le corps de POST requêtes
  • Outils de prévention de script intersite
  • Traitement automatique des en-têtes HTTP
    • app.get('/', function(req,res){ res.json({object: 'something'}); });

De manière générale, Sinatra doit Ruby comme Express est à Node.js. Je sais que ce n'est pas un exemple PHP, mais je ne connais pas beaucoup les frameworks PHP.

20
Jondlm

Express gère des tâches telles que les cookies, analyse le corps de la demande, forme la réponse et gère les itinéraires. 

C'est également la partie de l'application qui écoute un socket pour gérer les demandes entrantes.

Un exemple simple tiré de express github

 var express = require ('express'); 
 var app = express (); 

 app.get ('/', fonction (req, res) {
 res.send ('Hello World'); 
}); 
 App.listen (3000); 

Affiche la création du serveur express, la création d'un itinéraire app.get('/'... et l'ouverture du port sur lequel écouter les demandes http entrantes.

4
jeremy

Express est un nodejs Framework construit sur le module HTTP avec des fonctionnalités plus utilisables et de meilleure qualité, comme un moyen facile de gérer les itinéraires.

exemple: utilisation de HTTP

 var http = require('http');

//create a server object:
http.createServer(function (req, res) {
 res.writeHead(200, {'Content-Type': 'text/html'}); // http header

var url = req.url;
 if(url ==='/about'){
    res.write('<h1>about us page<h1>'); //write a response
    res.end(); //end the response
 }else if(url ==='/contact'){
    res.write('<h1>contact us page<h1>'); //write a response
    res.end(); //end the response
 }else{
    res.write('<h1>Hello World!<h1>'); //write a response
    res.end(); //end the response
 }

}).listen(3000, function(){
 console.log("server start at port 3000"); //the server object listens on port 3000
});

en utilisant Express:

var express = require('express');
var app = express();
app.get('/about',function(req,res)=>{
res.write('<h1>about us page<h1>'); //write a response
res.end();
})
1
Y Munawwer

Express vous permet de gérer facilement les requêtes http par rapport à Vanilla js . Vous devez disposer des éléments suivants pour effectuer une requête get

const Http = new XMLHttpRequest();
const url='https://jsonplaceholder.typicode.com/posts';
Http.open("GET", url);
Http.send();
Http.onreadystatechange=(e)=>{
console.log(Http.responseText)
}

En express, vous avez besoin d’express, vous l’utilisez et faites des requêtes http

const express = require("express")
const app  =express();
app.get("url",callback function);
0
Sai anurag

Exprimez-vous dans un cadre basé sur Node.js, ce qui simplifie l’écriture de code et de logique côté serveur. 

Ajoute de nombreuses fonctionnalités utilitaires et offre des fonctionnalités supplémentaires et, en général, facilite les choses.

Express is middleware-based : Il dirige essentiellement les demandes entrantes dans une chaîne de middlewares (d'étapes) où nous pouvons faire quelque chose avec la demande, en lire des données, la manipuler, vérifier si l'utilisateur est authentifié ou si renvoyer une réponse immédiatement.

Cette chaîne de middlewares nous permet d’écrire du code très structuré 

0
Mile Mijatovic