const dot = require("dotenv").config(); // dotenv 패키지의 config() 함수를 사용하여 .env 파일을 읽고 환경 변수를 현재 프로세스의 환경에 추가한다.
app.use(express.urlencoded({extended:false})); // Express.js 애플리케이션에서 url 인코딩된 데이터를 파싱하기 위한 미들웨어 함수 // 일반적으로 미들웨어는 폼 데이터를 서버에서 처리하기 위해 사용 // 이 미들웨어를 사용하면 req.body객체에 url 인코딩된 데이터가 파싱되어 저장됨
app.use("/",userrouter); 첫번째 인자로는 미들웨어를 적용할 경로를 지정하고 두 번째 인자로는 실제로 처리할 미들웨어 함수를 전달
const router = require("express").Router(); // Router()는 express.js의 router 객체를 생성하기 위해 사용한다.
const {signup,login} = require("../controllers/usercontroller"); => 구조분해할당 // 즉, ../controllers/usercontroller 모듈 내부에서 signup과 login이라는 이름의 함수 또는 객체를 정의하고, 그것을 외부로 내보내는 것입니다. 그리고 const {signup, login} = require("../controllers/usercontroller"); 코드를 사용하여 해당 모듈에서 내보낸 signup과 login을 변수로 할당하는 것입니다.
router.get("/join", (req,res) =< {res.render("login"} // join 경로로 get 요청이 들어왔을 때 실행되는 핸들러 여기서는 join 템플릿을 렌더링하여 클라이언트에게 // 회원페이지를 보여준다.
<form action="/join" method="post"> // join 경로로 post 요청을 보냈다. 그래서 http://localhost:8000/join 입력하면 이 페이지가 나온다.
아직 생소한 내용들
express-session 이란? express-session은 Node.js의 Express 프레임워크에서 세션을 관리하기 위한 미들웨어이다. 세션이란, 서버와 클라이언트 간에 데이터를 주고받기 위한 수단으로, 쿠키(Cookie)를 사용한다. 하지만 쿠키는 클라이언트의 브라우저에 저장되기 때문에 보안에 취약하다. 따라서 express-session을 사용하여 서버 측에서 세션을 관리할 수 있다. express-session은 클라이언트로부터 요청이 들어올 때마다, 세션 ID를 생성하여 쿠키로 클라이언트에게 전송한다. 이후 클라이언트는 요청 시마다 쿠키에 저장된 세션 ID를 서버에 전달하며, 서버는 해당 세션 ID에 대응하는 세션 정보를 찾아서 사용한다. 이를 통해 로그인 상태나 사용자 정보 등을 서버에 안전하게 보관할 수 있다.