작은 도서관
[express] Request Body에 대한 Custom Interface 작성
개발/Express 2024. 10. 7. 11:17

기본적으로 express.js에서 Request body의 타입은 미리 정의되지 않는다. 그렇다면 바디에 담길 타입을 개발 과정에서 미리 정의해두고 싶다면 어떻게 해야할까?전역 모듈 선언 사용typescript에선 기본적으로 개발자가 특정 모듈에 대한 정의를 작성하거나, 수정할 수 있는 방법을 제공한다.프로젝트의 루트 디렉토리에 @types 폴더를 만들고, 다음과 같이 body의 타입을 정의할 수 있다.declare module "express" { interface Request { T?: T; } }}Custom Interface 작성Request에 대한 정의만 새로 작성하고 싶다면 Custom Interface를 사용할 수 있다.import { Request } from "ex..

article thumbnail
[express] 유저 crud와 토큰을 이용한 로그인 구현
개발/Express 2023. 7. 23. 05:11

셀프 레퍼런스 https://flreauniverse.tistory.com/26 (세션과 토큰) 개요 유저 스키마와 모델 생성하기 유저 crud 구현하기 로그인 api를 연결하고 토큰 발급하기 토큰 검증하기 api 테스트하기 (번외) 비밀번호 암호화 유저 스키마와 모델 생성하기 스키마와 모델 생성은 지난 시간에 해본 적 있습니다. 실력을 더욱 키우고 싶다면 아래 코드를 보지 말고 한번 짜보는것도 좋은 방법입니다. 유저에 필요한 값은 생각보다 간단합니다. 이 두가지 값을 코드로 옮겨보겠습니다. model 폴더 아래에 user.js 파일을 만든 뒤 아래 코드를 작성해주세요. import mongoose from "mongoose"; const userSchema = new mongoose.Schema({ u..

article thumbnail
[express] Schema와 Model을 생성하고 데이터 저장하기
개발/Express 2023. 7. 8. 16:00

개요 스키마와 모델 스키마와 모델 구현하기 라우터에서 데이터 받아오기 데이터 CRUD 구현하기 스키마와 모델 DBMS에서 스키마란, 데이터베이스를 구성하는 데이터의 구조와 타입, 데이터간의 관계, 검색 방법, 속성등을 정의한 것을 뜻합니다. 모델이 바로 이런 스키마를 이용해서 만든 객체를 뜻합니다. 서버에선 모델을 통해 데이터베이스에 실제로 작업을 하게 됩니다. 스키마와 모델 구현하기 그럼 실제로 한번 구현해봅시다. 우리는 게시물을 저장하는 라우터를 구현해 두었습니다. 인터넷 게시판의 게시물을 분석해보자면, 어떤 값이 눈에 띄나요? 제목, 생성일자, 내용이 있습니다. 각각 타입으로 생각한다면 제목과 내용은 문자열, 생성일자는 Date타입이 되겠네요. 이를 코드로 한번 옮겨보겠습니다. src 아래에 mod..

article thumbnail
[express] 데이터베이스에 연결하기
개발/Express 2022. 3. 30. 23:01

셀프 레퍼런스 https://flreauniverse.tistory.com/23 (mongoDB cluster 생성하기) 개요 MongoDB cluster URI 따오기 포트를 환경변수로 분리하기 DB cluster와 연결하기 MongoDB cluster URI 따오기 https://www.mongodb.com/ MongoDB 페이지에 접속 후 로그인합니다. cluster 메인 페이지에 보이는 Connect 버튼을 누르고, Connect your application을 누릅니다. 그리고 nodejs로 설정한 뒤, 두번째에 있는 링크를 복사해주세요. mongodb+srv://:@cluster0.evl85.mongodb.net/myFirstDatabase?retryWrites=true&w=majority 이..

article thumbnail
[express] 필요한 api 라우팅하기
개발/Express 2022. 3. 7. 20:38

셀프 레퍼런스 https://flreauniverse.tistory.com/19 (rest API의 사용) https://flreauniverse.tistory.com/22 (postman으로 api 테스트하기) 개요 라우터란? api 구상하기 restful api로 라우팅하기 api 목적에 따라 URI 분리하기 라우터란? 특정 URL이나 메서드에 대해 처리하는 방식을 결정하는 것을 뜻합니다. 쉽게말해, URL이 갈 길을 알려주는 일이라고 보시면 됩니다. api 구상하기 먼저, 게시판답게 게시물을 관리하는 api가 필요합니다. 가장 간단한 CRUD(Create, Read, Update, Delete)만 구상했습니다. Restful API로 라우팅하기 전에 만들어놓은 index.js에 다음 코드를 추가해줍..

article thumbnail
[express] 개요
개발/Express 2022. 3. 5. 15:49

이 프로젝트에서는 expressjs를 사용해 게시판에서 사용하는 가장 간단한 백엔드 서버를 구현합니다. nodejs의 패키지를 설치하고 관리하는 법을 배웁니다. mongoose를 사용하여 서버와 MongoDB를 연결하고 데이터를 관리하는 법을 배웁니다. 다음 지식이 필요합니다 자바스크립트 문법 프론트엔드와 백엔드의 개념 기초적인 윈도우 명령어 사용법 사용 스택 백엔드: express.js DBMS: MongoDB(mongoose) api 테스트: postman 개요 express 시작하기 express 시작하기 nodejs의 가장 대표적인 패키지 관리자로는 npm이 있습니다. 다만, 이 프로젝트에선 npm대신 yarn을 사용합니다. 제일 먼저, yarn을 설치해줍니다. > npm install yarn ..