백엔드/Node.js
[node.js] 세션 생성 및 저장(mysql)
김갱갱
2022. 7. 20. 00:42
로그인 기능을 구현하기 위해서 먼저 세션을 공부해보겠습니다!
먼저 아래와 같이 입력해서 설치해주세요.
npm install -s express-session
npm install express-mysql-session
MYSQL 세션 저장
저는 mysql에 세션을 저장하는 방식을 이용했습니다.
그렇기 때문에 mysql도 미리 설치를 해주고 시작해주세요.
options에는 본인 데이터베이스의 포트번호와 패스워드 등을 입력해주세요.
const session = require("express-session");
const MySQLStore = require('express-mysql-session')(session);
var options = {
host: "localhost",
port: 포트번호,
user: "root",
password: "패스워드 입력",
database: "session",
};
var sessionStore = new MySQLStore(options);
app.use(
session({
key: "session_cookie_name",
secret: "session_cookie_secret",
store: sessionStore,
resave: false,
saveUninitialized: false,
})
);
app.get('/', function(req, res){
fs.readFile('./views/index.ejs', "utf-8", function(error, data){
res.writeHead(200, {'Content-Type': 'text/html' });
res.end(ejs.render(data));
})
req.session.test = 'session_ok'; //세션 생성
})
app.use(session()); 은 세션 미들웨어입니다. 이 코드도 추가해주세요.
저는 아직 로그인 구현이 아니라 세션 공부 단계이기 때문에 메인화면 들어가자마자 세션이 생기도록 해놓았습니다.
req.session.test = 'session_ok'를 해주면 아래 사진처럼 값이 추가가 된 것을 확인할 수 있습니다. (임의로 설정)