목록BackEnd (29)
EtoC
API Docs에대해 처음 알았을때 swagger를 사용해서 만들었다.그런데 최근에 Postman으로도 가능하다는걸 알았다.어떻게 하는지 궁금해서 해봤다. PostmanAPI 개발 및 테스트를 위한 협업 도구로서, 주로 개발자들이 API를 효과적으로 테스트하고 관리하는 데 사용되는 도구이다.Postman을 사용하여 API 엔드포인트에 요청을 보내고 응답을 검사하여 API를 효과적으로 테스트할 수 있다. API DocumentationAPI Documentation이란 백엔드에서 생성한 API의 구성요소들을 개발자들끼리 어떻게 주고받을지를 문서화한것을 말한다.API를 문서화하면 정보들을 효율적으로 공유할 수 있어 개발자가 직접적으로 소통해야하는 빈도를 줄이고, 일의 능률을 높일 수 있다.API 문서에는 ..
흠.. git hub desktop으로 연결했다가 10k가떠서 폴더를 삭제했는데 바탕화면의 폴더까지 삭제되었다. 휴지통 비우기 전에 확인 해보고 비울껄.. .env파일에 뭐가 있었는지 기억나지않아서 걱정이였는데 다행히 config의 index에 적혀있었다. import dotenv from "dotenv"; dotenv.config(); export default { MONGODB_URI: process.env.MONGODB_URI, JWT_SECRET: process.env.JWT_SECRET, PORT: process.env.PORT, }; 문제는 MongoDB의 비밀번호가 기억나지 않는것;;ㅎ MongoDB Atlas로 다시 접속하자 MongoDB Cloud MongoDB Cloud is a uni..
몽고디비클러스트를 활용하여 몽고디비에 연결해본다. MongoDB: 애플리케이션 데이터 플랫폼 업계 최고의 최신 데이터베이스를 토대로 구축된 애플리케이션 데이터 플랫폼을 사용해 아이디어를 더욱 빠르게 실현하세요. MongoDB는 데이터를 손쉽게 처리할 수 있도록 지원합니다. www.mongodb.com 클라우드에 아틀라스로 들어간다. try free를 클릭 위치는 서울이 있어서 서울로하고 생성하자. 이제 생성이 완료되었다. 생성 완료되면 Quick Strart라며 바로 네트워크 엑세스를 설정하게된다. quick start를 하지않았다면 화면 왼쪽 하단에 NetworkAccess에 설정하면된다. network access에서는 접속할 수 있는 IP를 설정할 수 있다. ADD IP ADDRESS 를 클릭하고 ..
서버를 켜니 아래와 같은 오류가 떴다. '분명 문자열로 리턴될텐데 왜 void 나 any를 하라고하지?' 생각하며 any로 바꿨다. 서버를 켜보니 오류는 사라졌는데 포스트맨으로 요청을 보내면 아무것도 반환되지않았다. 로그인 코드는 확실하게 작동하는것을 확인했으니 문제는 getAccessToken쪽인데 다시보니 return을 안썼었다.;;; 값이 리턴되는게 없으니 void를쓰라고 뜬거였고 string을 썼을때 에러가 났던것이였다. 아..이제 이런 실수는 하고싶지않은데 그래도 나중에 뭘 우선적으로 확인해야할지 더 빠르게 확인할수 있겠지? 이렇게 생각해본다. 이제 엑세스토큰 값 잘 받아온다.
mongoDB를 사용하다가 비슷한 기능을 하는 두 메소드를 발견했다. 어떤때에 create를 쓰고 어떤때에 save를 쓰는건지 궁금해져서 알아보았다. 1. 공통점 두 메서드 모두 데이터베이스에 새로운 데이터를 만드는 model 메서드이다. 2. 차이점 1. create() create() 메소드는 save()와 달리, 새로운 document를 만들어 데이베이스에 바로 저장한다. 모델 생성과 저장을 한 번에 처리할 수 있어, 코드를 간결하게 유지할 수 있다. create()를 호출할때 생성할 객체르 전달 하면 된다. //create() 사용 const Join = async (req, res) => { await User.create({ name, email, password }); } 2. save() ..
1 input 만들기 2. multer middleware 사용하기 설치: $ npm install --save multer 파일을 업로드 할수 있게 해준다. multer를 사용하기위해서는 조건이 딱 1개 있는데 form에 multipart/form-data을 formd에 입력해야한다. multer는 multiple 이 아닌 form을 처리하지 않는다고 쓰여있다. form(method="POST", enctype="multipart/form-data") 이것은 form이 다르게 encode 되게하는것이다. 여기서 enctype은 백엔드로 보내기위해 필요한 encoding tyoe이다.. 2-1 multer middleware 만들기 공식 문서 예 const express = require('express..
findByIdAndUpdate()는 update되기전의데이터를 return 해주고 한가지 옵션이 있는데 NEW: true를 주면 findByIdAndupdate가 업데이트된 데이터를 return 해 준다. 즉 mongoose에게 가장 최근에 업데이트된 object를 달라고 하는 것이다. 이렇게 해도 화면상의 값은 바뀌지를 않는데 막상 db에 들어가보면 바뀐것을 확인 할 수 있다. edit-profile.pug에서 loggednUser의 값을 입력하는데, 이값이 어디서 생성되었을까? 이값은 localsMiddleware에서 생성되었다. 여기서 loggedUser를 req.session.user이라고 정의하고 있다. 이 req.sessin.user은 로그인할 때 생성되므로 로그인하는 코드를 확인해보자. 하..
1. mongoose mongoose는 mongodb를 쓰는데 있어 필수적인 package로 nodejs와 mongoDB를 이어주는 다리역할을 한다. nodejs에서 javascript로 코드를 적을텐데 mongoose가 이 자바스크팁트형식의 코드르 mongoDB에 전달해 주기 때문이다. 2. 장점 1. schema 몽구스의 장점은 schema이다. MongDB같은 NoSQL에는 스키마에대한 메타데이터가 없어 도큐먼트에 무엇을 넣어도 에러가 발생하지 않는다. 하지만 실제로 사용해보면 에러가나는데, 이런 문제를 막기위해 몽구스는 스키마를 도입했다. Mongoose Schema 공식페이지 2. 다양한 모델 메소드 몽구스를 사용해보니 메소드가 확실히 편하다는 느낌을 받았다. find, findOne, find..