다디와 괴발개발

[Project 1 - WAS] Fastify-cli 프로젝트 생성 본문

DevOps/Project

[Project 1 - WAS] Fastify-cli 프로젝트 생성

아임다디 2022. 6. 2. 18:42

Project1 에서 WAS 서버를 만들기 위해 Fastify 프레임워크를 사용하여 Node.js 기반 백엔드를 구현하였다

Fastify 란?

Node.js 프레임워크 중 하나로 최소한의 오버헤드와 강력한 플러그인 아키텍처를 자랑하는 프레임워크이다.

프로젝트에서는 Fastify 프레임워크를 cli로 쉽게 다루기 위해 fastify-cli를 설치하여 사용하였다

fastify-cli 공식 Github

 

GitHub - fastify/fastify-cli: Run a Fastify application with one command!

Run a Fastify application with one command! Contribute to fastify/fastify-cli development by creating an account on GitHub.

github.com

Fastify 프로젝트 셋팅 방법

npm을 통해 fastify-cli를 설치해준다.

npm i fastify-cli --global

프로젝트를 생성하고자 하는 위치로 이동해 generate 명령어를 통해 새 프로젝트를 생성해준다

fastify generate . // 현재 디렉토리에서 새 프로젝트 생성

generate로 프로젝트 생성

실행 명령어

fastify 프로젝트를 생성하면 README.md에 실행방법이 나와있다.

npm test # test 모듈을 실행
npm run dev # app을 dev mode로 실행한다. 코드에 변경사항이 있을 때 마다 적용
npm start # Production mode로 실행

default는 localhost:3000 에서 열리며, fastilfy-cli 옵션으로 다른 포트에서 열리도록 실행 가능하다

최초 실행시에는 npm install을 통하여 모듈들을 설치해주자

Directory 구조

fastify는 기본적으로 routes 하위에 있는 파일들이 분기점이 된다.

예를 들어, routes/example/index.js 를 보고싶다면 localhost:3000/example을 하면 example/index.js의 내용을 볼 수 있다.

example에서 하위 엔드포인트를 만들고 싶다면 example/index.js 에서 원하는 엔드포인트를 만들어주면 된다

'use strict'

module.exports = async function (fastify, opts) {
  fastify.get('/', async function (request, reply) {
    return 'this is an example'
  })

  fastify.get('/hi', async function (request, reply) {
    return 'this is hi'
  })
}

localhost:3000/example/hi 를 만들어주었다

 

plugins 폴더에는 서버에서 사용 할 여러 모듈들을 연결하는 용도로 사용하였다.

다음 글에서는 프로젝트에서 사용했던 dotenv, fastify-mongodb 등의 모듈을 연결하고 사용하는 방법에 대해 포스팅해보겠다.

'DevOps > Project' 카테고리의 다른 글

[Project 1 - WAS] 기능 정의서, ERD, Swagger API 문서 제작  (0) 2022.06.02