라우팅의 개념
라우팅(영어: routing)은 어떤 네트워크 안에서 통신 데이터를 보낼 때 최적의 경로를 선택하는 과정이다. 최적의 경로는 주어진 데이터를 가장 짧은 거리로 또는 가장 적은 시간 안에 전송할 수 있는 경로다.
라우팅은 네트워크에서 패킷을 보낼 때 최적의 경로를 선택하는 과정을 의미한다. 라우터는 네트워크 7계층인 OSI 모형에서 라우팅의 기능을 담당하는 장치(공유기)를 말한다.
하지만, 위의 정의는 다소 이론적인(사전적인) 정의라 할 수 있다. 웹 개발 프레임워크에서 사용되는 라우팅의 개념은 클라이언트로부터 요청받은 URL과 뷰를 매칭시키는 것이라고 할 수 있다.
서버 파일 생성
const express = require('express');
const app = express();
const cors = require('cors');
// 서버 생성
const server = app.listen(8000, () =>
console.log('Start Server: localhost:8000')
);
라우터 폴더 생성
users.js
)// 패키지 express 를 활용하여 라우터 객체 생성
const router = require('express').Router();
// 생성된 라우터 객체를 활용해 라우터 정의
router.get('/login', async (req, res) => {
res.send('This is login page')
});
// 생성한 라우터 객체를 모듈화시키기
module.exports = router
라우터 객체를 미들웨어로 등록하기
users.js
의 라우터 객체를 import 해준다.app
객체에 라우터 객체를 미들웨어로 등록하면 된다.const express = require('express');
const app = express();
const cors = require('cors');
// 라우터 객체 import 하기
const user = require('./routes/users');
// 서버 생성
const server = app.listen(8000, () =>
console.log('Start Server: localhost:8000')
);
// users.js의 라우터 객체를 미들웨어로 등록
app.use('/users', user)
app.js
)에는 라우터 이외에도 다양한 미들웨어가 등록할 수 있다. cors()
객체를 등록하는 것이 대표적인 예이다.npm install --save cors
const express = require('express');
const app = express();
const cors = require('cors');
const user = require('./routes/users');
// 서버 생성
const server = app.listen(8000, () =>
console.log('Start Server: localhost:8000')
);
// users.js를 미들웨어로 등록
app.use('/users', user)
// request의 body 데이터에 접근하기 위해 미들웨어 등록
app.use(express.json() );
app.use(express.urlencoded( {extended : true } ));
// CORS 미들웨어 등록
app.use(cors());
// 오류 처리 미들웨어 등록
app.use(function (err, req, res, next) {
console.error(err.stack)
res.status(500).send('JsonDecodeError!')
});
// server 객체를 모듈화시키기
module.exports = server