Express란?

wltjd1688·2025년 2월 12일

풀사이클

목록 보기
12/74

Node.js의 프레임워크

node.js를 이용하는 사람들의 커뮤니티가 성장하면서, node.js의 불편한 점을 인지하고 그걸 개선하고자 프레임워크의 개발이 시작되엇다.
대표적으로 Express, NestJS, Fastify가 있다.
참고: 2024 Developer Survey

  • Express: 가장 오래되고 많이쓰이는 프레임워크, 단순하고 가벼우며 빠르게 서버 구축 가능, 확장이 편리함
  • NestJS: TypeScript기반 구조화된 프레임워크, 3개중 github에서 별을 제일 많이받음,
  • Fastify: Express를 만든 개발자들이 만듬, Express보다 빠른 성능 제공, JSON Schema기반 요청 검증

node.js와 Express

Node.js가 Chrome의 V8엔진을 이용하여 서버를 만들었다면, Express는 이런 Node.js의 원칙과 방법을 이용하여 웹 애플리케이션을 만들기 위한 프레임워크이다.

Express 홈페이지에 가면 Node.js를 위한 빠르고 개방적인 간결한 웹 프레임워크로 웹 애플리케이션, API, 선능등을 지원해준다고 적혀있다.

  • 웹 애플리케이션
    Express는 웹 및 모바일 애플리케이션을 위한 일련의 강력한 기능을 제공하는 간결하고 유연한 Node.js 웹 애플리케이션 프레임워크이다.
  • API
    자유롭게 활용할 수 있는 수많은 HTTP 유틸리티 메소드 및 미들웨어를 통해 쉽고 빠르게 강력한 API를 작성할 수 있다.
  • 성능
    Express는 기본적인 웹 애플리케이션 기능으로 구성된 얇은 계층을 제공하여, 사용자가 선호하는 Node.js 기능을 직관적으로 만들었다.

설치방법은 node.js가 설치되어 있다면 npm이 설치되기에 터미널에 다음과 같이 입력하면 된다.

npm i express

HTTP 메서드

require를 통해 express를 불러오면 다음과 같이 HTTP 메서드를 이용해 API를 만들 수 있다.

const express = require('express')
const app = express()

// GET method
app.get('/', (req, res) => {
  res.send('Hello World!')
})

app.listen(1234);

Express에서는 이전 포스트에서 배운 GET, POST, PUT/PATCH, DELETE 외에도 OPTIONS, HEAD, ALL이 있다.
OPTIONSHEAD는 있는 HTTP 메서드 인데 ALL은 아니다.

OPTIONSHEAD 그리고 ALL
해당 메서드들은 어떤 경우에 사용될까?

  • OPTIONS: 클라이언트가 서버에 어떤 HTTP 메서드를 사용할 수 있는지 확인하기 위해 사용됨, 특히 CORS사전 요청에서 필수적으로 사용함
  • HEAD: 클라이언트가 데이터 크기, API 상태 코드, 메타데이터만 확인하고 본문은 필요업을때 사용함
  • ALL: Express에서 제공하는 라우트 핸들러일 뿐, HTTP메서드는 아님, 모든 HTTP 요청을 처리하하며, 보통 미들웨어처럼 사용되거나, 모든 요청을 로깅할 때 유용함

객체

우리 세상은 객체로 이루어져 있다.
주어 자리에 왔을 때 문장이 만들어지는건 다 객체라고 할 수 있다.
ex) 물건, 사람이름, 붕어빵 등등
여기서는 서버가 클라이언트에게 데이터를 보낼때 하나의 정보를 클라이언트에게 보냈었던걸 객체를 사용하면 데이터 묶음으로 보낼 수 있게 된다.

//ex. 상품명: Node.js를 공부해보자
//	  상품가격 : 20000
//    삼풍소개: 이 책 좋음 왜? 강사님이 지음
//    ===>
{
  	상품명: "Node.js를 공부해보자",
    가격: 20000,
    삼품소개: "이책 좋음 왜? 강사님이 지음"
}

JSON이란

JaavaScript Object Notation의 약자로 자바스크립트 객체 문법으로 구조화된 데이터를 표현하기 위한 문자 기반의 표준 포맷이다. 데이터의 교환과 저장하기 위한 데이터 표준으로 db로도 사용된다.
기본형태는 { key : value } 와 같이 키와 값이 쌍을 이루는 구조이다.
여러개를 표현할때는 쉼표를 사용한다.

let nodejsBoot = {
	title: "Node.js를 공부해보자",
    price: 20000,
    description: "이 책 좋음 왜? 강사님이 지음"
}

// express에서 사용해보자
app.get('/products/1', function(req,res) {
    res.json(nodejsBoot)
    // localhost:1234/products/1 페이지에 
  	// {"title": "Node.js를 공부해보자","price": 20000,"description": "이 책 좋음 왜? 강사님이 지음" } 이 나옴
})
profile
일단 해!!!!

0개의 댓글