본문 바로가기

Node.js

[Node.js] 노드 Express 라우터(Router)

 

라우터(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;