라우터(Router)는 웹 애플리케이션에서 클라이언트의 요청에 대한 적절한 응답을 처리하는 역할을 하는 부분
라우터는 URL에 따라 어떤 로직이 실행되어야 하는지를 결정하고 요청을 처리함
Node.js에서는 주로 Express.js 프레임워크 라우터를 사용함
1. 라우터 생성 및 등록
Express.js에서는 express.Router를 사용하여 새로운 라우터 객체를 생성함
const express = require('express');
const router = express.Router();
// routes-index.js
var express = require("express");
var router = express.Router();
module.exports = router;
2. 라우터에 미들웨어 등록
라우터에는 요청을 처리하기 위한 미들웨어 함수들을 등록할 수 있음
cf) 미들웨어: 요청을 처리하거나 요청에 대한 처리를 수행하는 함수
router.use((req, res, next) => {
// 라우터 미들웨어 로직
next(); // 다음 미들웨어로 넘어가도록 호출
});
3. 라우터에 경로 및 HTTP 메서드 등록
특정 경로와 HTTP 메서드에 대한 라우터를 등록
router.get('/', (req, res) => {
// '/' 경로에 대한 GET 요청 처리 로직
res.send('Hello, World!');
});
var express = require("express");
var router = express.Router();
/* GET home page. */
router.get("/", function (req, res, next) {
res.render("index", { title: "Express" });
});
module.exports = router;
4. 라우터를 애플리케이션에 등록
생성한 라우터를 Express 애플리케이션에 등록
const app = express();
app.use('/api', router);
app.js를 확인하면 라우터에 미들웨어와 애플리케이션에 등록한 내용을 확인해 볼 수 있음
// app.js
var createError = require('http-errors');
var express = require('express');
var path = require('path');
var cookieParser = require('cookie-parser');
var logger = require('morgan');
var indexRouter = require('./routes/index');
var usersRouter = require('./routes/users');
var app = express();
// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'jade');
app.use(logger('dev'));
app.use(express.json());
app.use(express.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));
app.use('/', indexRouter);
app.use('/users', usersRouter);
// catch 404 and forward to error handler
app.use(function(req, res, next) {
next(createError(404));
});
// error handler
app.use(function(err, req, res, next) {
// set locals, only providing error in development
res.locals.message = err.message;
res.locals.error = req.app.get('env') === 'development' ? err : {};
// render the error page
res.status(err.status || 500);
res.render('error');
});
module.exports = app;
'Node.js' 카테고리의 다른 글
[Node.js] 노드 버전관리 NVM(Node Version Manager) (2) | 2023.11.28 |
---|---|
[Node.js] npm과 yarn (1) | 2023.11.25 |
[Node.js] 계정관리 서버 프로젝트 4 (0) | 2023.11.17 |
[Node.js] 계정관리 서버 프로젝트 3 (0) | 2023.11.15 |
[Node.js] exress 프로젝트 로그 관리 방법 (0) | 2023.11.15 |