[nodejs] Fastify 미들웨어 사용법

Fastify는 빠르고 효율적인 웹 애플리케이션을 개발하기 위한 Node.js 웹 프레임워크입니다. Fastify에서는 미들웨어를 사용하여 애플리케이션의 요청과 응답을 처리할 수 있습니다.

이 블로그 포스트에서는 Fastify에서 미들웨어를 사용하는 방법에 대해 알아보겠습니다.

미들웨어란?

미들웨어는 요청과 응답 사이에 위치하여 HTTP 요청을 처리하고 다음 미들웨어로 제어를 전달하는 함수입니다. Fastify에서 미들웨어는 preHandler 훅을 통해 사용됩니다.

fastify.addHook('preHandler', function (request, reply, done) {
  // 미들웨어 로직을 작성합니다.
  // done을 호출하여 다음 미들웨어로 제어를 전달합니다.
  done()
})

Fastify에 미들웨어 추가하기

Fastify에 미들웨어를 추가하려면 addHook 메서드를 사용하여 preHandler 훅에 미들웨어 함수를 등록합니다.

const Fastify = require('fastify')
const fastify = Fastify()

// 미들웨어 추가
fastify.addHook('preHandler', function (request, reply, done) {
  // 미들웨어 로직을 작성합니다.
  done()
})

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

fastify.listen(3000, (err, address) => {
  if (err) {
    console.error(err)
    process.exit(1)
  }
  console.log(`Server listening on ${address}`)
})

위의 예제에서는 Fastify 애플리케이션에 미들웨어를 추가하는 방법을 보여줍니다.

커스텀 플러그인을 사용한 미들웨어

Fastify에서는 커스텀 플러그인을 사용하여 미들웨어를 정의하고 등록할 수 있습니다.

// 미들웨어 정의
function myMiddleware(request, reply, done) {
  // 미들웨어 로직을 작성합니다.
  done()
}

// 플러그인 등록
fastify.register(function (instance, options, done) {
  instance.addHook('preHandler', myMiddleware)
  done()
})

위의 예제에서는 커스텀 플러그인을 사용하여 미들웨어를 정의하고 Fastify 애플리케이션에 등록하는 방법을 보여줍니다.

Fastify에서는 강력하고 유연한 미들웨어 시스템을 제공하여 개발자들이 웹 애플리케이션을 더욱 효율적으로 개발할 수 있도록 도와줍니다.

더 많은 정보를 원하시면 Fastify 공식 문서를 참고하세요.