본문 바로가기

개인과제(로그인,회원가입 및 Mysql)

(6)
[내일배움캠프] 주특기 숙련주차 개인과제 lv3 mysql CRUD mysql의 세팅이 성공적으로 되었다면 이제는 mongodb가 아니라 sql을 데이터베이스로 사용하는 것이 가능하다. mysql을 사용하기 위한 패키지인 npm mysql과 sequelize를 다운받아야 한다. 구조는 mongodb와 비슷하지만 명령어는 mysql에 맞는 명령어를 사용해야한다. mysql은 데이터베이스의 구조를 migration으로 설계할 수 있다. 작업 폴더의 구조는 이렇게 구성했다. config.json은 aws에서 mysql의 클러스터를 생성할 때 만들었던 url에 패스워드를 통해서 연결이 가능하다. config.json에서 mysql의 데이터베이스를 생서할 수 있다. sequelize를 사용하면 migrations을 사용해서 테이블을 손 쉽게 생성 할 수 있다. users 테이블을..
[내일배움캠프] 주특기 숙련주차 개인과제 lv3 mysql Lv.2에서 만든 (과제)프로젝트의 mongoose를 sequelize로 변경하세요. 지금까지의 모든 과제는 database를 mongodb로 설정해서 진행했다. 이번에는 mongodb가 아니라 mysql을 database로 설정해보자 sequelize란? sequelize는 ORM(Object Relational Mapping)으로써 Javascript 객체(Object)와 데이터베이스의 관계(Relation)을 연결(Mapping) 해주는 도구다. 쉽게 말하자면 데이터베이스의 테이블과 필드를 js만으로 속성과 명칭 등을 정립시킬 수 있게 해주는 도구다. sequelize를 사용하기 위해서는 전용 패키지를 다운 받는 등 준비가 필요하다. 먼저 sequelize 라이브러리를 설치한다. # express,..
[내일배움캠프] 주특기 숙련주차 개인과제 lv2 로그인 회원가입 기능-4- 로그인 회원가입 기능 적용 결과 const express = require('express'); const router = express.Router(); const Post = require("../schemas/post.js"); const loginMiddleware = require("../middlewares/login-middleware") routes의 posts.js의 파일에 전역변수로 미들웨어랑 연결한다. //게시글 형성// router.post("/posts", loginMiddleware, async (req, res) => { const { userId } = res.locals.user; //body에서 데이터 받음// const { title, content } = req.bod..
[내일배움캠프] 주특기 숙련주차 개인과제 lv2 로그인 회원가입 기능-3- 로그인으로 얻은 쿠키 데이터를 CRUD에 접목시키자 먼저 쿠키데이터를 전역으로 보내주기 위해서 작업 폴더에 middlewares라는 폴더를 만든다. 그리고 그 폴더에 login-middleware.js 파일을 만든다. ./middlewares/ login-middleware.js 경로에서 최상단에 User와 jwt를 가져오기 위한 require을 작성한다. const jwt = require("jsonwebtoken") const User = require("../schemas/user") middleware에서 쿠키데이터를 검증하고 jwt로 암호화된 쿠키 데이터를 정상적인 데이터로 다시 가공해서 module.exports로 보낸다. module.exports = async (req, res, next)..
[내일배움캠프] 주특기 숙련주차 개인과제 lv2 로그인 회원가입 기능-2- 로그인 기능을 구현하자 기존 CRUD 기능 구현에서는 게시글과 댓글에 작성자가 따로 Password를 기입해서 작성, 수정, 삭제가 가능했다. 이번에는 로그인을 통해서 자동으로 본인이 인증되고 본인이 작성한 댓글과 게시판을 수정 삭제가 가능하도록 한다. 먼저 express와 router 그리고 schmas의 user.js를 불러온다. const express = require("express"); const router = express.Router(); const User = require("../schemas/user"); 그리고 post로 body에서 데이터를 보내준다. router.post("/login", async (req, res) => { const {Id, password } = req...
[내일배움캠프] 주특기 숙련주차 개인과제 lv2 로그인 회원가입 기능-1- 먼저 회원가입 기능을 구현한다. 회원가입으로 받는 데이터를 저장하기 위해서 routes폴더에 js파일을 생성한다. ./routes/users.js users.js는 회원가입 기능을 구현하기 위한 js파일이다. 그리고 Post로 받은 데이터를 저장하기 위한 뼈대를 구축하기 위해서 schmas폴더에 js파일을 만든다. ./schemas/user.js 저장할 데이터는 아이디, 비밀번호, 닉네임 이 세가지다. Id: { type: String, required: true, unique: true, minlength: 3, }, nickname: { type: String, required: true, unique: true, minlength: 3, }, password: { type: String, requi..