본문 바로가기

boilerplate/Jhon-Ahn boilerplate backend

(6)
Auth 기능 만들기 Auth 기능이란? 페이지들이 있는데, 어떤 페이지는 로그인된 유저만 쓸 수 있는 페이지가 있고 어떤 페이지는 관리자만 쓸 수 있는 페이지가 있다. 이런 것들을 하나하나 체크해주기 위해서 authentication 기능을 만들어주는 것이다. index.js에서 auth api를 구현해주자. 루트 경로에서 middleware 폴더를 하나 만들어주고 그 안에 auth.js 파일을 만들어주자. auth 파일의 서브 설명은 위에 index.js의 auth api 구현 부분에 있다. auth.js 파일의 auth 구현 부분을 보면 findByToken 함수가 있는데 이 함수는 따로 내장되어있는 함수가 아니라 유저 모델에서 따로 만들어줘야한다. *static으로 만든 메서드와 methods 로 만든 메서드의 차이점..
Bcrypt로 비밀번호 암호화 하기 저번에 postMan으로 json형식의 회원가입 정보를 서버로 보냈었다. 이때 password 같은 경우 123456으로 넣어서 보내줬는데 문제는 이것이 암호화가 하나도 안되어있다는 것이다. (앞으로 나올 코드에서 존재하는 변수이기도 한데, 이렇게 쌩으로 드러나있는 비밀번호를 myPlainPassword라고 한다.) 보낼 때는 저렇게 보내도 DB에 저장할 땐 암호화를 한 후에 저장해서 계정 정보를 관리하는 사람도 유저의 비밀 정보를 볼 수 없도록 해줘야한다. 일단 bcrypt 라이브러리를 다운받아주자. bcrypt 사용법은 다음 링크를 이용하자. https://www.npmjs.com/package/bcrypt bcrypt A bcrypt library for NodeJS.. Latest version:..
NodeMon 설치 & 비밀 설정 정보 관리 서버 코드를 변경할 때마다 서버를 재시작해야 하는 번거로움이 있는데 이것을 해결해주는 것이 nodemon이다. 이 도구를 사용하면 자동으로 위 작업을 해준다. 위에 보면 -dev가 붙어있는데 이것은 development 모드의 약자다. development 모드(local에서 할 때랑), production 모드(배포를 한 다음의 모드)가 있고, 우리가 로컬에서 할 때만 사용하겠다는 의미이다. 이렇게 다운로드하면 dependencies가 아니라 devdependencies에 버전이 들어가 있는 걸 확인할 수 있다. nodemon으로 시작해야 되기 때문에 scripts를 수정해주자. 다음으로는 소스 안에있는 비밀정보를 보호하는 작업이다. 지금까지 게시글에는 가렸지만 소스 안에는 mongoDB 내 정보가 들..
BodyParser & postMan & 회원가입 기능 client란? Chrome 브라우저를 client라고 봐도 된다. 깃허브에서 회원가입을 하려고 할 때 클라이언트를 이용해서 이름, 이메일, 비밀번호를 입력한 다음에 이것을 서버에다가 보내는 것이다. 정보들을 입력해서 서버에 보내주면 서버에서 이것을 받아야 되는데, 이때 필요한 것이 BodyParser다. BodyParser을 다운 받아주자. npm install body-parser@1.19.0 --save 그리고 postMan이라는 프로그램을 다운로드하는데, 아직 클라이언트를 구현해놓지 않았기 때문에 클라이언트를 통해서 데이터를 서버에 보낼 수가 없다. 그래서 이것을 대체하기 위해서 사용하는 프로그램이 postMan이다. 나는 사지방이므로 web postMan을 이용했다. https://web.pos..
mongoDB Model & Schema 유저 이름이나 사는 곳, 나이 등등 유저 정보를 입력하면 유저 데이터베이스에 들어가게 된다. 이때 이 유저와 관련된 데이터들을 보관하기 위해서 유저 모델, 유저 스키마를 만들어보자. 모델이란? 스키마를 감싸주는 역할을 한다. 스키마란? 어떤 상품에 관련된 글을 작성할 때, 글을 작성하는 사람이 누구인지, 작성을 할 때 포스트의 이름이 무엇인지, 또 이때 type과 최대길이 등등 하나하나 지정해주는 것이 스키마를 통해서 할 수 있음. 루트 경로에서 models 폴더를 하나 만들고, User.js파일을 만든다. 몽구스 참고 사이트 https://www.zerocho.com/category/MongoDB/post/59a1870210b942001853e250 https://www.zerocho.com/categ..
express 적용과 mongoDB 연결 컨테이너와 파일까지 모두 만들어졌다면 원래라면 npm package를 만들기 위해서 npm init을 해줘야 하지만 goorm ide 같은 경우 컨테이너를 만드는 시점부터 node와 npm이 다운로드되어있다. 그래서 이 부분은 스킵해도 된다. root 경로에서 index.js 파일을 하나 만들어주자. 이 파일이 backend의 시작점이 된다. 그리고 위 버전에 맞게 express와 mongoose를 다운로드하여주자. npm install express@4.17.1 npm install mongoose@5.8.9 다음으로 기본적인 express.js 앱을 만들어보자. https://expressjs.com/ko/starter/hello-world.html Express "Hello World" 예제 Hel..