WIL

5주차를 마무리하며...정규표현식,req,res,jwt,sequelize 연결,MySQL 생성,삭제

흙으로만든형 2022. 8. 11. 20:57

겨우 하루지나면 어제 기억이 잊혀져간다. 내 머리 메모리 공간이 예전같지 않다.
복습 또 복습하자!

TEST 코드는 차근차근 알아가 보자 포기하지말고!!~

 

 

정규표현식

1. 아이디 정책

- 3자 이상 16자 이하, 영어 또는 숫자로 구성

* 특이사항 : 대소문자 상관없이 toLowerCase()로 변환시켜 데이터베이스에 삽입하기 때문에 대문자 비교는 없다.

^(?=.*[a-z0-9])[a-z0-9]{3,16}$

2. 닉네임 정책

- 2자 이상 16자 이하, 영어 또는 숫자 또는 한글로 구성

* 특이사항 : 한글 초성 및 모음은 허가하지 않는다.

^(?=.*[a-z0-9가-힣])[a-z0-9가-힣]{2,16}$

3. 비밀번호 정책

- 6자 이상 16자 이하, 영어와 숫자의 조합으로 구성

* 특이사항 : . _ -를 포함한 특수문자도 같이 허용해준다.

^(?=.*[0-9])(?=.*[a-zA-Z])[a-zA-Z0-9!@#$%^&*()._-]{6,16}$

 

Express 모듈의 req, res 객체

 

req 객체

  • req.app : req 객체를 통해 app 객체에 접근할 수 있습니다.
  • req.ip: 요청한 Client의 ip 주소가 담겨 있습니다.
  • req.body: Request를 호출할 때 body로 전달된 정보가 담긴 객체입니다.
    • body-parser Middleware를 이용하여야 해당 객체를 사용할 수 있습니다.
  • req.params: 라우터 매개 변수에 대한 정보가 담긴 객체입니다.
  • req.query: Request를 호출할 때 쿼리 스트링으로 전달된 정보가 담긴 객체입니다.
  • req.cookies: Request를 호출할 때 Cookie 정보가 담긴 객체입니다.
    • cookie-parser Middleware를 이용하여야 해당 객체를 사용할 수 있습니다.
  • req.get(Header): 헤더에 저장된 값을 가져오고 싶을 때 사용합니다.

res 객체

  • res.app : res 객체를 통해 app 객체에 접근할 수 있습니다.
  • res.status(코드) : Response에 HTTP 상태 코드를 지정합니다.
  • res.send(데이터) : 데이터를 포함하여 Response를 전달합니다.
  • res.json(JSON) : JSON 형식으로 Response를 전달합니다.
  • res.end() : 데이터 없이 Response를 전달합니다.
  • res.direct(주소) : 리다이렉트할 주소와 함께 Response를 전달합니다.
  • res.cookie(Key, Value, Option) : 쿠키를 설정할 때 사용합니다.
  • res.clearCookie(Key, Value, Option) : 쿠키를 제거할 때 사용합니다.

https://jihyun03.tistory.com/52.

 

쿠키/세션 방식과 JWT

1. 쿠키/세션 방식 1) 인증 방식 순서 1. 사용자가 로그인을 한다. 2. 서버에서는 계정정보를 읽어 사용자를 확인한 후, 사용자의 고유한 ID값을 부여하여 세션 저장소에 저장한 후, 이와 연결되는

jihyun03.tistory.com

https://alencion.tistory.com/48

 

[Nodejs] Sequelize로 DB연결하기.

Seqeulize 사용하기 seqeulize는 nodejs에서 웹을 데이터베이스에 연동할 때 사용하는 미들웨어이다. seqeulize는 DB에서 조회 된 값을 객체로 전달해주는 ORM(object-relational mapping)이다. Seqeulize 사전작..

alencion.tistory.com

https://vlee.kr/563

 

MySQL 기본 쿼리 (DB 생성, 삭제, Table 생성, 삭제, 데이터 입력, 삭제) - Vlee's Tale

DB 생성 CREATE database example; DB 삭제 DROP database example; DB 선택 USE example; DB 목록 보기 SHOW databases; Table 생성 CREATE TABLE test ( id int(11) not null auto_increment, name varchar(10) not null, email varchar(30), primary key(id),

vlee.kr

 

 

Sequelize와 Express 연결

다시 app.js로 돌아와 시퀄라이즈와 연결해준다.

const express = require('express')
const { sequelize } = require('./database/models/index')
const userRoutes = require('./routes/user')

const app = express()

sequelize
  .sync()
  .then(() => console.log('connected database'))
  .catch(err => console.error('occurred error in database connecting', err))

app.use('/user', userRoutes)

app.listen(3000, () => console.log(`started server`))

/database/models/index.js 파일에는 시퀄라이즈가 설정 파일을 읽어들여 데이터베이스와 연결하고 모델 폴더에 들어가있는 모델들을 읽는다. 시퀄라이즈를 동작하기 위해 sequelize 프로퍼티를 가져와 sync 메소드를 실행시킨다.

이 메소드를 실행하면 시퀄라이즈가 데이터베이스와 연결한다. 반환 객체가 Promise이기 때문에 비동기 작업에 대한 처리를 해줘야 한다.

'WIL' 카테고리의 다른 글

http->https로 바꿔주기  (0) 2022.08.17
5주차 마무리하며...  (0) 2022.08.15
4주차가 지나고 5주차에 접어들며...시작후 28일...  (0) 2022.08.07
7/31 ...3번째 회고록  (0) 2022.08.01
3주차에 접어들고...2번째 회고록  (0) 2022.07.26