BackEnd/NodeJs

    [NestJS] 03 - 컨트롤러

    Nest의 컨트롤러는 MVC 패턴에서의 컨트롤러이다. 즉, 들어오는 요청(request)를 받고 그 처리결과를 응답(response)로 돌려주는 인터페이스 역할을 한다. 컨트롤러는 라우팅 메커니즘을 통해 컨트롤러가 받는 요청을 분류한다. 이전 글에서 서버를 구동시키고 동작하는법은 익혔다. 그렇다면 소스코드를 한번 살펴보자 // app.controller.ts import { Controller, Get } from '@nestjs/common'; import { AppService } from './app.service'; @Controller() export class AppController { constructor(private readonly appService: AppService) {} @Ge..

    [NestJs] 2- 데코레이터

    NestJs 는 데코레이터를 적극 활용한다. 데코레이터를 잘 활용하면 횡단관심사를 분리하여 관점 지향 프로그래밍을 적용한 코드를 작성 할 수 있다. 예시를 한번 보자. 상당히 스프링처럼 생겼다.. (필자는 스프링을 다룰 줄 모른다) class CreateUserDto { @IsEmail() @MaxLength(60) readonly email: string; @IsString() @Matches(/^[A-Za-z\d!@#$%^&*()]{8,30}$/) readonly password: string; } 당황스럽지만 차근차근 봐보자. 위 코드는 사용자가 요청을 제대로 보냈는지 검사하는 코드이다. email은 IsEmail()을 통해 이메일 형식을 정의하고 있고, 최대 길이를 60자로 정의하고 있다. (Ma..

    [NestJs] 01 - NestJS 설치

    본 게시물 시리즈는 https://wikidocs.net/147787 1.1 NestJS 소개 NestJS는 Node.js에 기반을 둔 웹 API 프레임워크로써 Express 또는 Fastify 프레임워크를 래핑하여 동작합니다. 기본으로 설치하면 Express를 사용합니다… wikidocs.net 위키독스 (NestJS로 배우는 백엔드 프로그래밍) 책을 학습하며 정리한 글입니다! NestJs는 Express와 같은 자바스크립트를 기반으로 백엔드를 작업할 수 있는 웹 개발 프레임워크이다. NodeJs는 손쉽고 뛰어난 확장성이 있다는 장점이 있지만 이로인해 어떠한 기능을 사용할때마다 알맞는 라이브러리를 찾는데 시간을 할애해야 하는 단점이 있다. NestJS는 ORM,설정 등등 많은 기능을 기본으로 탑재하고 ..

    [Node.js] 서버에서 클라이언트로 파일 전송하기

    저번 글에서 클라이언트에서 formData를 통해 서버로 파일을 보내고 저장하는 법을 알아보았다 이번에는 서버에서 클라이언트로 파일을 보내고 읽는방법에 대해 알아보겠다. 우선 express로 구성된 node.js에 이미지 파일들이 저장되어 있다고 생각해보자. 이때 res를 이용하면 파일을 보낼 수 있다. //파일 이미지 받아오기 app.post("/getImage", async (req, res) => { const file = fs.readFileSync(`uploads/${req.body.filename}`); res.writeHead(200, { "Context-Type": "image/jpg" }); res.write(file); res.end(); }); 헤더를 이미지타입으로 정의하고, 파일을 ..

    [node.js] multer,fetch를 활용한 파일 업로드

    multer,fetch를 활용한 파일 업로드를 구현해 보겠다. https://maximorlov.com/fix-unexpected-field-error-multer/ Fix "Unexpected field" Error From Multer Learn how to decypher & fix this cryptic error message from multer, and finally implement working file uploads in Node.js. maximorlov.com http://daplus.net/javascript-js-fetch-api%EB%A1%9C-%ED%8C%8C%EC%9D%BC%EC%9D%84-%EC%96%B4%EB%96%BB%EA%B2%8C-%EC%97%85%EB%A1%9C%..