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
'IT이야기' 카테고리의 다른 글
특정 지점을 중심으로 정점을 회전하는 방법 (0) | 2021.04.27 |
---|---|
데이터베이스 크기가 2GB보다 크면 SQLite 성능이 저하? (0) | 2021.04.26 |
문자열에 다른 문자열이 포함되어 있지 않은지 확인하는 Bash (0) | 2021.04.26 |
컴파일 및 실행을 위한 CLion 설정 (0) | 2021.04.26 |
react-router가 자식 구성 요소에서 this.props.location을 가져옵니다. (0) | 2021.04.26 |