Подтвердить что ты не робот

Что делает Express.js в стеке MEAN?

Недавно я попал в AngularJS, и мне это нравится. Для предстоящего проекта я хочу использовать стек MEAN (MongoDB, Express, Angular, Node). Я хорошо знаком с Angular, и у меня есть скромное понимание целей MongoDB и Node в стеке. Тем не менее, я не совсем понимаю, какова цель Express.js. Это важно для стека MEAN? Что бы вы сравнили это с традиционным MySQL, PHP, javascript-приложением? Что он делает, что другие три компонента не могут сделать?

Кроме того, если кто-то хочет дать свое собственное представление о том, как четыре части стека работают вместе, это будет здорово.

4b9b3361

Ответ 1

  • MongoDB = база данных
  • Экспресс .js = веб-фреймворк
  • Angular= front-end framework
  • Node= базовая платформа/веб-фреймворк

В основном, что делает Express, это позволяет вам легко создавать веб-приложения, предоставляя несколько более простой интерфейс для создания конечных точек запроса, обработки файлов cookie и т.д., чем vanilla Node. Вы можете отказаться от этого уравнения, но тогда вам придется делать гораздо больше работы, взбивая веб-приложение. Node сам мог делать все, что делает экспресс (экспресс реализован с помощью node), но выражает просто обертывает его в более приятном пакете.

Я бы сравнил Express с некоторой веб-картой PHP в описываемом вами стеке, что-то вроде slim.

Ответ 2

Вы можете думать о Экспрессе как поясе полезности для создания веб-приложений с помощью Node.js. Он предоставляет функции для почти всего, что вам нужно для создания веб-сервера. Если бы вы писали одинаковую функциональность с vanilla Node.js, вам пришлось бы писать значительно больше кода. Вот несколько примеров того, что делает Express:

  • маршруты REST упрощаются с помощью таких вещей, как
    • app.get('/user/:id', function(req, res){ /* req.params('id') is avail */ });
  • Система промежуточного программного обеспечения, которая позволяет подключать различные синхронные функции, которые выполняют разные действия с запросом или ответом, т.е. аутентификация или добавление свойств
    • app.use(function(req,res,next){ req.timestamp = new Date(); next(); });
  • Функции для разбора тела запросов POST
  • Средства защиты от сценариев межсетевого взаимодействия.
  • Автоматическая обработка заголовков HTTP
    • app.get('/', function(req,res){ res.json({object: 'something'}); });

Вообще говоря, Sinatra - это Ruby, поскольку Express - Node.js. Я знаю, что это не пример PHP, но я мало знаю о фреймворках PHP.

Ответ 3

Экспресс обрабатывает такие вещи, как файлы cookie, анализирует тело запроса, формирует маршруты ответа и обработки.

Он также является частью приложения, которое слушает сокет для обработки входящих запросов.

Простой пример из express github

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

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

Показывает создание экспресс-сервера, создание маршрута app.get('/'... и открытие порта для прослушивания входящих HTTP-запросов.

Ответ 4

Экспресс в среде на основе Node.js, которая упрощает написание серверного кода и логики.

Добавляет множество полезных функций и предлагает дополнительные функциональные возможности, и в целом упрощает работу.

Express основан на промежуточном программном обеспечении: он в основном направляет входящие запросы через цепочку промежуточного программного обеспечения (этапов), где мы можем что-то делать с запросом, читать некоторые данные из него, манипулировать им, проверять, аутентифицирован ли пользователь, или в основном отправлять ответ немедленно.

Эта цепочка промежуточного программного обеспечения позволяет нам писать очень структурированный код

Ответ 5

Express - это инфраструктура nodejs, построенная на основе модуля Http, с более удобными и улучшенными функциями, такими как простой способ обработки маршрутов.

Например: использование 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
});

с помощью 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();
})

Ответ 6

Express позволяет легко управлять запросами http по сравнению с vanilla js. вам нужно следующее, чтобы сделать запрос на получение

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

В экспрессе требуется экспресс, использовать его и делать http запросы

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