routes에 뜻을 찾아보면 노선이라는 뜻이 있다.
라우팅에 의미를 찾아보면 어떤 네트워크 안에서 통신 데이터를 보낼 때 최적의 경로를 선택하는 과정이다.
최상위 디렉토리
하위 디렉토리
최상위 디렉토리 아래에는 하위 디렉토리들이 있다.
하위 주소로 가기 위한 핸들링을 routing이라고 한다.
이때, HTTP 요청 메소드(GET, POST)를 통하여 회원을 등록,수정,삭제,조회를 할 수 있다.
routing은 및 특정한 HTTP 요청 메소드(GET, POST 등)인 특정 엔드포인트에 대한 클라이언트 요청에 애플리케이션이 응답하는 방법을 결정하는 것을 말한다.
app.METHOD(PATH, HANDLER)
// 🗂 app.js
const express = require('express')
const app = express()
const port = 3000
const { StatusCodes } = require('http-status-codes');
const bodyParser = require('body-parser');
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended: true}));
// 회원 한 명을 조회
app.get('/user', (req, res) => {
res.status(StatusCodes.OK).json({
message: "getUser"
});
});
// 한 명에 회원 등록
app.post('/user', (req, res) => {
res.status(StatusCodes.CREATED).json({
message: "create"
});
console.log(req.body);
});
// 모든 회원 조회
app.get('users', (req, res) => {
res.status(StatusCodes.OK).json({
message: "get users"
});
});
// 한 명에 회원 수정
app.patch('/users', (req, res) => {
res.status(StatusCodes.OK).json({
message: "updated user"
});
});
// 한 명에 회원 삭제
app.delete('/users', (req, res) => {
res.status(StatusCodes.delete).json({
message: "delete user"
});
});
// server
app.listen(port, () => {
console.log(`Example app listening on port ${port}`)
});
app.js
메인 파일 안에 라우팅 경로를 전부 정의하였다.
클라이언트가 input필드에 이름과 나이를 입력하면 서버로 전송될 때,body에 json형식으로 실려서 전달이 된다.
위와 같이 app.js에 routing관련 로직을 작성하여도 실행에는 문제는 없다.
프로젝트가 복잡해지고, 규모가 커질수록 app.js파일에 역할이 많아진다.
app.js는 서버도 띄워야하고.. 미들웨어도 실행해야하고.. 사용자 요청이 오면 그에 맞는 핸들링도 해야하고...
가독성과 유지보수를 생각하여 기능 단위로 파일을 분리하여 routing을 하는 과정이 필요하다.
다음 시간에는 router를 분리해보고자 한다.