프론트엔드/Node js 3

NestJs - 컨트롤러

# 이 글은 공식 문서를 정리한 내용이다 컨트롤러 컨트롤러는 들어오는 요청을 처리하고 클라이언트에 응답을 반환 하는 역할을 한다. 컨트롤러의 목적은 애플리케이션에 대한 특정 요청을 수신하는 것이다. 라우팅 메커니즘은 어떤 컨트롤러가 어떤 요청을 수신하는지 제어한다. 종종 각 컨트롤러에는 둘 이상의 경로가 있으며 각각의 경로는 다른 작업을 수행할 수 있다. 기본 컨트롤러를 만들기 위해 NestJs는 클래스와 데코레이터를 사용한다. 데코레이터는 클래스를 필수 데이터와 연결하고 Nest가 라우팅 맵을 생성할 수 있도록 도와준다. 라우팅 import { Controller, Get } from '@nestjs/common'; @Controller('cats') export class CatsController ..

CORS에러

브라우저에서는 보안 상의 이유로, 교차 출처 HTTP요청만 할 수 있다. 따라서 브라우저는 동일한 출처의 리소스에만 접근할 수 있도록 HTTP요청을 제한하고 이를 cors에러라고 한다. 예를 들어 클라이언트에서 IP주소가 192.123.0.1이라면 서버 역시 동일한 IP주소인 192.123.0.1일 때 서버 리소스에 접근할 수 있다. 만일 서버 주소가 98.98.0.1이라면 브라우저에서는 서버 접근을 제한하며 cors policy를 위반했다고 알린다. Node js에서 해결방법 일반적인 해결 방법으로는 서버에서 header에 Access-Control-Allow-Origin를 표기해주면 된다. * 예시코드 import express from 'express' app.use((req, res, next) ..

Validation(유효성)

유효성 검사란 client측에서 server로 데이터를 보낼때 그 데이터들이 정확한지 확인하는 과정이다. 만일 이 부분을 직접 코드로 작성하면 조건문을 걸어서 일일이 검사를 해야하지만 Node js에서 express-validator라는 라이브러리가 있어서 비교적 간단하게 유효성 검사를 할 수 있다. 1. express-validator설치 npm i express-validator 2. express-validator 유용한 API notEmpty(): body안의 값이 비어있지 않은지 확인 withMessage(): body안의 값을 잘못된 방식으로 요청할 때 메세지 출력 isLength(): 글자수 크기를 제한할 때 사용 isInt(): 정수 값인지 확인 isEmail(): email인지 여부를 확..