Express api 라우팅

이일우·2023년 4월 28일

공부하기

목록 보기
33/42

Express는 nodejs의 웹 프레임워크로서 웹 애플리케이션, API 개발을 위해 설계되었다. -위키백과

시작하기에 앞서 라우팅에 필요한 Http 메서드, URL과URI의 개념을 숙지해 주세요.

설치

npm install express

라우팅

라우팅은 URI(또는 경로) 및 특정한 HTTP 요청 메소드(GET, POST 등)인 특정 엔드포인트에 대한 클라이언트 요청에 애플리케이션이 응답하는 방법을 결정하는 것을 말합니다.
각 라우트는 하나 이상의 핸들러 함수를 가질 수 있으며, 이러한 함수는 라우트가 일치할 때 실행됩니다.

라우트 정의에는 다음과 같은 구조가 필요합니다.

app.METHOD(PATH, HANDLER)
  • appexpress의 인스턴스입니다.
  • METHOD는 HTTP 요청 메소드입니다.
  • PATH는 서버에서의 경로입니다.
  • HANDLER는 라우트가 일치할 때 실행되는 함수입니다.

express를 이용한 기본적인 라우팅

var express = require('express');
var app = express();

//홈페이지로 get요청을 보내면 'hello world' 데이터를 받을 수 있다
app.get('/', function(req, res) {
  res.send('hello world');
});
//홈페이지로 post요청을 보내면 'Got a POST request' 데이터를 받을 수 있다
app.post('/', function (req, res) {
  res.send('Got a POST request');
});

app.listen(3000);

라우팅 메서드

express 라우팅 메서드에 대해서 자세히 알아보기

express에서는 기본적으로 HTTP메서드를 전부 지원합니다. 또한 추가로 all 메서드가 있는데 이는 경로로 들어오는 모든 HTTP메서드에 응답합니다.

app.all('/secret', function (req, res, next) {
  console.log('Accessing the secret section ...')
  next() // pass control to the next handler
})

위 코드는 /secret 경로로 들어오는 모든 HTTP메서드(get, post, put, delete...)에 응답을 보냅니다.

라우팅 경로(path)

라우트 경로는 문자열, 문자열 패턴 또는 정규식일 수 있습니다.
?, +, * 및 () 문자는 정규식 문자의 서브세트입니다. 하이픈(-) 및 점(.)은 문자열 기반 경로에 의해 문자 그대로 해석됩니다.

문자열

"/"는 루트 라우트입니다.

app.get('/', function (req, res) {
  res.send('root');
});

"/about"은 /about경로에 일치하는 요청에 응답을 보냅니다.

app.get('/about', function (req, res) {
  res.send('about');
});

문자열 패턴

다음의 라우트 경로는 acd 및 abcd와 일치합니다.

app.get('/ab?cd', function(req, res) {
  res.send('ab?cd');
});

다음의 라우트 경로는 abcd, abbcd 및 abbbcd 등과 일치합니다.

app.get('/ab+cd', function(req, res) {
  res.send('ab+cd');
});

정규식

다음의 라우트 경로는 라우트 이름에 “a”가 포함된 모든 항목과 일치합니다.

app.get(/a/, function(req, res) {
  res.send('/a/');
});

참고자료 출처

Express

0개의 댓글