Nodejs 6

GraphQL API

GraphQL의 사전적 정의와 서버가동은 이전 포스트에 있습니다. (이전포스트: https://mason-lee.tistory.com/19) GraphQL을 사용하기 위해서는 기본적으로 typeDefs와 resolvers를 작성해 주어야됩니다. 기본사용 typeDefs typeDefs에서는 입력값(인자)와 출력값의 타입을 정해 놓습니다(Type Definition). import { gql } from "apollo-server"; const typeDefs = gql` type Movie { title: String! genres: String description: String } type Query { allMovies: [Movie]! } type Mutation { addMovie(title: ..

Nodejs 2022.12.29

REST API

API 란? API란 Aplication Programming Interface의 약자로 어플리캐이션들이나 다른 장치들간의 통신을 위한 규칙을 정하는 것이며 웹 API는 클라이언트와 제공되는 리소스와의 게이트웨이라 할수있다. REST 란? REST(Representational State Transfer)는 높은 유연성과 자율성을 가진 아키텍처 중에 하나이다. 쉽게 말해 여러 스타일의 아키텍처들이 있지만 위의 장점들로 인해 쉽게 사용이 가능하여 API를 만들때 가장 보편적으로 사용하게 되는 아키텍처 스타일 입니다. REST의 설계 원칙 Uniform interface : 하나의 URI에서의 리소스 요청의 결과는 출처와 관계없이 항상 같아야 한다. Client-server decoupling : 클라이언트..

Nodejs 2022.12.26

GraphQL에서 파일 업로드

기존의 아폴로 서버에서 파일 업로드를 하기 위해선 express를 설치해주어야한다. 기존의 아폴로 서버 import { ApolloServer, gql } from "apollo-server"; import schema from "./schema"; //typeDefs와 resolvers의 통합 const server = new ApolloServer({ schema, }); server.listen().then(({ url }) => { console.log(`🚀 Server ready at ${url}`); }); 기존의 아폴로 서버에서 npm을 이용하여 express와 graphql-upload를 설치 npm install apollo-server-express express graphql-uplo..

Nodejs 2022.12.24

GraphQl과 Apollo

GraphQL이란? GraphQL이란 페이스북에서 제작한 API를 위한 쿼리 언어이다. GraphQL만의 특징으로는 사용자에게 전체 데이터가아닌 필요한 데이터만을 골라 제공할수있다. 또한 REST API와 다르게 단일 엔드포인트를 사용한다. 예를 들어 REST API의 경우 "example.com/home", "example.com/user"와 같이 URL의 엔드포인트를 이용하여 통신이 되지만 GraphQL의 경우 "example.com/graphql" 하나로 원하는 데이터를 가저올수 있다. npm install @apollo/server graphql 먼저 npm을 이용해 apollo와 graphql을 설치 server.js (index.js) import { ApolloServer, gql } fro..

Nodejs 2022.12.23

AWS-s3, multer, multer-s3를 이용한 express 파일업로드

Rest api 서버를 구축하고 프론트엔드에서 파일 전송을 요청해 보았다. 분명 로그를 확인했을땐 post request는 받았는데 파일은 오지 않았다. 검색을 해보니 express의 기본 기능에는 파일업로드 기능이 없어서였다. 그래서 multer라는 미들웨어와 파일을 로컬서버가 아닌 AWS-s3서버에 저장할것이기에 multer-s3도 같이 사용해보았다. npm install multer multer-s3 aws-sdk --save 일단 multer와 multer-s3 그리고 AWS-s3를 연결하기위해 aws-sdk를 설치 후 aws-sdk import aws from "aws-sdk"; const s3 = new aws.S3({ credentials: { accessKeyId: process.env.A..

Nodejs 2022.12.23

Express 서버에 Mysql과 session store 설치(AWS-RDS이용)

사실 이전까지 DB는 Postgre와 Prisma orm만으로 공부를 하였다가 SQL문을 공부하면서 Mysql만으로 서버를 만들어보고 싶어서 직접 연결해 보았다. session 또한 그저 express session만을 이용해 보았는데 그러다보니 서버를 재부팅할시 session 정보가 리셋이 되서 mysql session store를 이용하여 DB에 저장해주어야됬다. 관련 라이브러리 설치 npm i dotenv --save npm i express-session --save npm i express-mysql-session --save npm i mysql2 --save 처음 mysql을 설치해주었는데 mysql은 promise를 반환하지않아 비동기작동이 되지않는다는것을 알게되었다. 검색끝에 promis..

Nodejs 2022.12.14