본문 바로가기
깃허브 링크!
node.js

로그인 게시판 혼자 만들수있게 연습

새로운 내용이나 모르는 부분들

1.sequelize??
javascript 기반의 orm(object-relational-mapping) 라이브러리로 데이터베이스와 상호 작용하기 위해 사용된다.
개발자가 sql 쿼리를 직접 작성하지 않고도 데이터베이스를 조작 가능하게 도와준다.

sql 쿼리문 예시
SELECT * FROM users; INSERT INTO users (name, age) VALUES ('John', 25);

2.구조분해 할당??
const {sequelize } = require("./models"); = models폴더에서 sequelize를 가져와서 연결한것

3. app.use(express.urlencoded({extended:false})); ??
app.use(express.urlencoded({ extended: false })) 코드는 Express 애플리케이션에 URL 인코딩 미들웨어를 등록하는 부분입니다. express.urlencoded()는 Express의 내장된 미들웨어 함수로서, 인코딩된 데이터를 해석하여 req.body 객체에 추가합니다. { extended: false } 옵션은 내장된 querystring 라이브러리를 사용하여 URL 인코딩된 데이터를 해석하는 방식을 설정합니다. extended: false는 논리값으로, 내장된 라이브러리의 동작 방식을 선택합니다.

4.express-session??
express 애플리케이션에서 세션 관리를 위한 미들웨어이다. 세션은 서버 측에서 클라이언트의 상태를 유지하기 위한 메커니즘으로 사용된다. express-session을 사용하면 클라이언트에 고유한 세션 식별자를 할당하고 해당 식별자를 통해 클라이언트의 세션 데이터를 저장하고 관리 가능하다. 이를 통해 로그인 상태유지 사용자 정보 저장 인증등 다양한 기능 가능하다. 먼저 express-session을 사용하기 위해서는 해당 미들웨어를 설치해야한다.


여기 코드에서 미들웨어를 설치한 부분은 app.use(session({...}))입니다.
express-session은 Express 애플리케이션에서 세션 기능을 사용하기 위한 미들웨어입니다.
app.use(session({...}))을 사용하여 Express 애플리케이션에 세션 미들웨어를 등록하고 설정을 제공합니다.
session({...})의 인수로 설정 객체를 전달하여 세션 미들웨어의 동작을 구성할 수 있습니다.
여기서 사용된 설정은 다음과 같습니다: secret: 세션을 식별하기 위해 사용되는 비밀 키입니다.
세션 식별자를 암호화하는 데 사용됩니다. resave: 세션 데이터가 변경되지 않아도 항상 저장할지 여부를 나타냅니다.
보통은 false로 설정하여 변경이 없을 때에는 저장하지 않도록 설정합니다.
saveUninitialized: 초기화되지 않은 세션을 저장소에 저장할지 여부를 나타냅니다
. 대부분의 경우 false로 설정하여 초기화되지 않은 세션은 저장소에 저장하지 않도록 설정합니다.
cookie: 세션 쿠키에 대한 설정을 제공합니다.
예제에서는 secure: true로 설정하여 세션 쿠키를 HTTPS 프로토콜에서만 전송하도록 설정했습니다.
따라서, app.use(session({...}))을 통해 Express 애플리케이션에 세션 미들웨어를 설치하고,
설정을 제공하여 세션을 활성화할 수 있습니다.
이후 req.session 객체를 통해 세션 데이터에 접근하고 필요한 로직을 구현할 수 있습니다.

  • 경로가 어떻게 흘러가는지 간략하게 알아보자.
app.js는 Express 애플리케이션의 진입점이며, 설정 및 미들웨어 등록을 담당합니다.미들웨어는 요청과 응답 사이에서 동작하며, 주로 세션 관리, 로깅, 인증 등의 작업을 처리합니다.라우터는 요청 경로와 핸들러 함수를 매핑하여 요청을 처리하고 응답을 반환합니다.컨트롤러는 라우터에서 호출되는 함수로, 비즈니스 로직을 수행하고 데이터 처리를 담당합니다.모델은 데이터베이스와의 상호작용을 담당하며, ORM을 사용하여 데이터베이스와의 연결 및 CRUD 작업을 수행합니다.
이러한 구조를 통해 요청은 라우터를 거쳐 컨트롤러로 전달되며, 컨트롤러는 모델을 사용하여 데이터베이스와 상호작용하여 필요한 작업을 수행합니다. 그리고 응답은 역순으로 돌아와 클라이언트에게 반환됩니다.