IT이야기

Express.js의 MEAN 스택 역할

cyworld 2021. 4. 26. 21:09
반응형

Express.js는 MEAN 스택에서 무엇을합니까?


나는 최근에 AngularJS에 들어갔고 그것을 좋아합니다. 다가오는 프로젝트에서는 MEAN 스택 (MongoDB, Express, Angular, Node)을 사용하려고합니다. 저는 Angular에 대해 잘 알고 있으며 스택에서 MongoDB 및 Node의 목적에 대해 어느 정도 이해하고 있습니다. 그러나 Express.js의 목적이 무엇인지 실제로 이해하지 못합니다. MEAN 스택에 필수적입니까? 기존 MySQL, PHP, 자바 스크립트 앱과 비교해 보시겠습니까? 다른 세 구성 요소가 할 수없는 것은 무엇입니까?

또한 누군가가 스택의 네 부분이 함께 작동하는 방식에 대해 자신의 의견을 제시하고 싶다면 좋을 것입니다.


  • MongoDB = 데이터베이스
  • Express.js = 백엔드 웹 프레임 워크
  • Angular = 프런트 엔드 프레임 워크
  • 노드 = 백엔드 플랫폼 / 웹 프레임 워크

기본적으로 Express가하는 일은 바닐라 노드보다 요청 엔드 포인트 생성, 쿠키 처리 등을위한 약간 더 간단한 인터페이스를 제공하여 웹 애플리케이션을 쉽게 생성 할 수 있도록하는 것입니다. 방정식에서 벗어날 수는 있지만 웹 응용 프로그램을 작성하는 데 훨씬 더 많은 작업을해야합니다. Node 자체는 express가하는 모든 일을 할 수 있지만 (express는 node로 구현됩니다), express는 더 좋은 패키지로 포장합니다.

Express를 사용자가 설명하는 스택의 일부 PHP 웹 프레임 워크 (예 : slim)와 비교 합니다.


Express를 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는 Express가 Node.js 인 것처럼 Ruby를 사용합니다. PHP 예제가 아니라는 것을 알고 있지만 PHP 프레임 워크에 대해서는 잘 모릅니다.


Express는 쿠키, 요청 본문 구문 분석, 응답 형성 및 경로 처리와 같은 작업을 처리합니다.

또한 수신 요청을 처리하기 위해 소켓을 수신하는 애플리케이션의 일부이기도합니다.

Express github 의 간단한 예

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

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

익스프레스 서버 생성, 경로 생성 app.get('/'...및 수신 http 요청 수신을위한 포트 열기를 보여줍니다 .


서버 측 코드 및 로직 작성을 단순화하는 Node.js 기반 프레임 워크로 표현합니다.

많은 유틸리티 기능을 추가하고 추가 기능을 제공하며 일반적으로 작업을 더 쉽게 만듭니다.

Express는 미들웨어 기반입니다 . 기본적으로 미들웨어 체인 (단계)을 통해 들어오는 요청을 전달하여 요청으로 무언가를 수행하고, 데이터를 읽고, 조작하고, 사용자가 인증되었는지 확인하거나 기본적으로 응답을 보낼 수 있습니다. 바로.

이 미들웨어 체인을 사용하면 매우 구조화 된 코드를 작성할 수 있습니다.


Express는 경로를 처리하는 쉬운 방법과 같이 더 유용하고 더 나은 기능 을 제공하는 Http 모듈 위에 빌드nodejs 프레임 워크 입니다.

예 : 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();
})

Express를 사용하면 vanilla js에 비해 http 요청을 쉽게 관리 할 수 ​​있습니다. 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)
}

Express에서는 Express가 필요하고 사용하고 http 요청을 만듭니다.

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

ReferenceURL : https://stackoverflow.com/questions/19411135/what-does-express-js-do-in-the-mean-stack

반응형