[nodejs] Fastify 라우팅 방법

Fastify는 빠르고 효율적인 웹 프레임워크로, 라우팅을 효과적으로 관리할 수 있는 강력한 기능을 제공합니다. 이번 게시물에서는 Fastify에서 라우팅을 설정하고 사용하는 방법을 살펴보겠습니다.

Fastify 라우트 정의하기

라우트를 정의하는 가장 간단한 방법은 GET, POST, PUT, DELETE 등의 HTTP 메소드에 대해 경로 및 핸들러 함수를 지정하는 것입니다.

const fastify = require('fastify')();

fastify.get('/hello', (req, reply) => {
  reply.send({ message: 'Hello, World!' });
});

fastify.post('/users', (req, reply) => {
  // 사용자 생성 로직을 추가합니다.
});

매개변수화된 라우트

경로에 동적으로 변하는 값을 포함하여 라우트를 정의할 수 있습니다. :id 형태의 매개변수를 사용하여 이를 구현할 수 있습니다.

fastify.get('/user/:id', (req, reply) => {
  const userId = req.params.id;
  // 사용자 ID에 기반한 로직을 추가합니다.
});

라우트에서의 미들웨어 사용

Fastify에서는 라우트 내부 또는 외부에서 미들웨어를 사용할 수 있습니다.

const preHandlerFunction = (req, reply, done) => {
  // 전처리 로직을 추가합니다.
  done();
};

fastify.get('/protected', { preHandler: preHandlerFunction }, (req, reply) => {
  // 보호된 라우트 로직을 추가합니다.
});

404 핸들링

정의되지 않은 경로에 대한 404 오류를 처리하는 방법은 다음과 같습니다.

fastify.setNotFoundHandler((request, reply) => {
  reply.code(404).send({ message: 'Not Found' });
});

Fastify를 사용하면 이제 강력하고 유연하게 라우팅을 정의하고 제어할 수 있습니다.

이상으로 Fastify의 라우팅에 대한 간략한 소개를 마치겠습니다.

참고문헌: