반응형

백엔드 37

graphQL 초기세팅

1. apollo-server 설치 $ npm init -y $ npm i apollo-server graphql 2. nodemon 설치 $ npm i nodemon -D 3. server.js 파일 생성 $ touch server.js 4. package.json 파일 script 설정 type: module 을 설정하는 이유는 server.js 에 gql과 ApolloServer를 import 해줘야 하기 때문이다. 1. script의 test를 원하는 변수명으로 아래와 같이 변경한다. scripts : { "dev" : "nodemon server.js" } 2. 맨 아레에 type을 설정 "type" : "module" 5. server.js 에 ApolloServer , gql import 시..

백엔드/graphQL 2022.08.08

Validation 설정

nestjs에서는 requests 단의 자동 validation 처리를 해주는 모듈들이 다음과 같이 있다. - ValidationPipe - ParseIntPipe - ParseBoolPipe - ParseArrayPipe - ParseUUIDPipe 이 중에, ValidationPipe 모듈은 class-validator 패키지와 유휴셩 검사 데코레이터를 제공하는데, class 혹은 작성된 dto 에 따른 유효성 검사를 체크한다. 해당 파이프를 사용하기 위해 모듈 설치가 필요하다. npm i --save class-validator class-transformer 해당 패키지를 설치 후에는 전역 파이프를 선언하기 위해 main.ts 에 다음과 같이 코드를 작성해준다. import { Validation..

백엔드/NestJs 2022.08.01

useGlobalPipes 선언을 통한 @Param 타입변환 및 Validation

Postman에서 API 호출 시, 파라미터의 타입은 string으로 들어오게 된다. 이 때, 본인이 원하는 타입으로 변경을 하고 싶을 때에는 @Param 데코레이터에 타입을 지정하면 되는데, 일반적으로 그냥 타입을 지정만 하게 되면 그대로 string 형식으로 들어오는 것을 경험할 수 있다. 이 때, 타입을 변경해주는 방법으로는 controller에서 @Param 데코레이터에 ParseIntPipe 를 옆에 붙여주는 등 원하는 타입의 파이프를 붙여주면 되는데, 일일히 붙여주는 것이 여간 귀찮은 일이 아닐 수 없다. 이 때, main.ts 에 useGlobalPipes를 선언해주게 된다면, 파람 데코레이터 옆에 타입을 선언하게 되면 바로 본인이 원하는 타입으로 변경할 수 있다. main.ts app.us..

백엔드/NestJs 2022.08.01

핫리로딩 적용

nestjs 를 사용하면서 소스를 수정했을 시, 노드 서버를 껐다가 다시 켜서 적용시켜야 되는 불편함이 있는데, 핫리로딩을 적용하게 되면 소스를 수정 시 노드서버를 종료하고 다시 켜지 않아도 바로바로 적용되는 편리함을 갖추고 있다. express 에서는 nodemon을 설치하는데, nestjs 에서는 핫리로드를 제공하므로 핫리로드를 적용시켜서 좀 더 편리하게 이용해보자. 적용 방법은 nestjs 공식문서를 참고하여 진행한다. 1. 패키지 설치 $ npm i --save-dev webpack-node-externals run-script-webpack-plugin webpack 2. 설정 nestjs 의 루트 경로에 webpack-hmr.config.js 파일을 하나 만들어서 아래와 같은 코드를 복붙하여 ..

백엔드/NestJs 2022.07.03

NestJs 세팅

이번에 이직한 곳에서 백엔드로 사용하는 프레임워크는 NestJs 여서 이제 막 타입스크립트와 NestJs에 대해 포스팅을 진행하려 한다. 오늘은 간단하게 NestJs를 설치해보고, 모듈 및 MVC를 설치하는 명령어에 대해 포스팅을 하려 한다. 1. NestJs 설치 $ npm i -g @nestjs/cli 2. 프로젝트 초기화 $ nest new {project_name} 3. 모듈 생성 NestJs는 자바의 스프링이나, 파이썬 장고와 같이 MVC 패턴으로 설계하기 편하게 자체적으로 서비스를 제공해준다. 아래의 명령어를 터미널에서 치게 되면 해당 소스가 자동으로 생성된다. $ nest g mo {name} // module 생성 $ nest g s {name} // service 생성 $ nest g c..

백엔드/NestJs 2022.06.19

node.js에서 mysql 연결

node.js 에서는 mongodb, mysql, postgresql etc... 를 연결하여 사용가능한데, 이번에는 mysql을 연결하여 node.js에서 mysql을 이용하고자 한다. mysql, mysql2 2가지 패키지가 제공되는데 mysql2가 좀 더 많은 기능을 제공하는 것으로 알고 있기 때문에 mysql2를 설치하여 db 연결을 진행할 예정이다. 1. install npm install --save mysql2 2. database.js 파일 생성 및 코드 추가 db를 연결하기 위해 data라는 폴더에 database.js 를 추가하여 아래의 코드를 적어주어 db연결준비를 한다. 보통 mysql 에서는 createConnection 함수를 사용하는데, 이는 로컬개발에서는 상관없지만 추후 많은..

백엔드/node.js 2022.05.28

상태 코드 작업(404,500,200 etc...)

하단의 에러 처리 코드로 에러 처리 시, 개발자도구에서는 비록 404 에러가 발생했더라도 status 200이 뜸. 왜냐하면 404 에러가 발생 시, [2] 의 미들웨어에서는 정상적으로 404.ejs 파일을 render 해줬기 때문임. // [1]. restaurants api 코드 app.get('/restaurants/:id',(req,res)=>{ const restaurantId = req.params.id const filePath = path.join(__dirname,'data','restaurants.json'); const fileData = fs.readFileSync(filePath); const storeRestaurants = JSON.parse(fileData); storeRes..

백엔드/node.js 2022.05.23
반응형