✏️ Express
1. 최소화
- 개발자와 서버 사이에 최소한의 다리만 놓아줘 아이디어를 최대한 펼칠 수 있게 하면서도 유용한 기능을 제공하자
- 프레임워크를 사용하다 보면 코드 한줄 작성하기도 전에 복잡한 코드들을 잔뜩 늘어놔야 할 때가 많지만,
가장 먼저 불필요한 기능을 떼어내 필요한 것만 추가 해 접근성이 높은 편이다.
2. 유연함
📍 정의
- node.js 기반의 웹 프레임워크를 의미한다.
- Express 는 Middleware 의 연결이라고 할 수 있다.
- Middleware 란 요청과 응답 사이에서 목적에 맞는 일을 수행하는 함수를 의미한다.
Request -> Middleware -> Middleware -> ... -> Response
- 웹, 모바일 애플리케이션에 기능을 제공하는 최소화되고 유연한 노드 웹 애플리케이션 프레임 워크이다
✏️ Express 설치
🔗 npm 문서
npm i express
📍 서버 띄우기
- 공식 문서에서 제공하는 아래 코드 작성으로 간단한 서버를 띄울 수 있다.
app.listen(port)
는 서버가 실행중인 포트를 관리하는 함수이다.
app.get('/', () =>)
는 API 로 각각 HTTP 메서드, 라우팅, 콜백 함수를 의미한다.
res.send()
를 사용해 response 값을 입력할 수 있다.
const express = require('express')
const app = express()
const port = 3000
app.get('/', function (req, res) {
res.send('Hello World')
})
app.listen(port);
- send 로 대부분의 데이터 형식을 응답할 수 있지만 json 을 반환할 경우
res.json()
을 사용하는 것이 효율이 더 좋다.
app.get('/', function (req, res) {
res.json(dto)
})
📍 JSON 파싱
- json 형식의 파일을 다루기 위해선 별도의 미들웨어가 필요하다.
app.use(express.json());
app.use(routes);
✏️ GET 방식
- 앞의 예제에서 기본적인 GET 방식의 API 외에도 Parameter, PathValiable 을 사용하는 것도 가능하다.
📍 PathVariable
- 라우팅에
:
를 선언하면 그 자리에 pathVariable 을 사용할 수 있다.
- 즉
:id
는 spring MVC 의 {id}
와 같은 기능을 수행한다.
app.get(path + '/:id', (req, res) => {
const q = req.params;
console.log(q)
res.send('Hello World')
})
10:41:06 1|index | { id: 'dog' }
req.params
의 key 값으로 특정 value 를 사용할 수 있다.
app.get(path + '/:id', (req, res) => {
dto.param = req.params.id
res.json(dto)
})
var dto = {
'status': 200,
'msg': 'success',
'param': ''
}
{
"status": 200,
"msg": "success",
"param": "dog"
}
- 위 방법 외에도 아래와 같이 변수에 저장하는 방법도 있다.
app.get(path + '/:id', (req, res) => {
const { id } = req.params;
res.send(id);
})
dog
📍 Parameter
- 라우팅에는 아무것도 적어주지 않아도 된다.
req.query
를 호출해 query parameter 를 조회할 수 있다.
app.get(path + '/', (req, res) => {
dto.param = req.query.id
res.json(dto)
})
var dto = {
'status': 200,
'msg': 'success',
'param': ''
}
{
"status": 200,
"msg": "success",
"param": {
"id": "dog"
}
}
✏️ POST 방식
- POST 요청을 처리하기 위해선
body-parser
모듈을 먼저 설치해줘야 한다.
npm i body-parser
req.body
를 호출해 body 값을 사용할 수 있다.
- body 의 json 을 파싱하려면 미들웨어
app.use(express.json());
을 선언해야 한다.
import bodyParser from 'body-parser';
app.use(bodyParser.urlencoded({extended: false}));
app.use(express.json());
app.post('/', (req, res) => {
const body = req.body;
console.log(body);
res.send('200 ok');
})
11:09:39 1|index | { title: 'test1' }