로그인하면서 세션을 설정하고싶은데 구글보고 미들웨어설정을 똑같이했는데 세션설정이안되네요 ㅠㅠ
이것때문에 지금 몇시간째 찾고있는데 도움이 절실합니다 ㅠㅠ
mysqlstore를 사용하였고 데이터베이스에 sessions테이블은 만들어졌는데 값이 들어가질않습니다 ㅠㅠ
app.js
var createError = require('http-errors');
var express = require('express');
var path = require('path');
var cookieParser = require('cookie-parser');
var logger = require('morgan');
var session = require('express-session');
var MySQLStore = require("express-mysql-session")(session);
var bodyParser = require('body-parser')
var indexRouter = require('./routes/index');
var usersRouter = require('./routes/users');
var formRouter = require('./routes/form');
var mysqlRouter = require('./routes/mysql');
var boardRouter = require('./routes/board');
var loginRouter = require('./routes/login');
var joinRouter = require('./routes/join');
var passwordchangeRouter = require('./routes/passwordchange');
var userdeleteRouter = require('./routes/userdelete');
var app = express();
//bodyparser
app.use(bodyParser.json());
// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'ejs');
app.use(logger('dev'));
app.use(express.json());
app.use(express.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));
app.use('/', indexRouter);
app.use('/users', usersRouter);
app.use('/form', formRouter);
app.use('/mysql', mysqlRouter);
app.use('/board', boardRouter);
app.use('/login', loginRouter);
app.use('/join', joinRouter);
app.use('/passwordchange', passwordchangeRouter);
app.use('/userdelete', userdeleteRouter);
var options = {
host: "localhost",
port: 3306,
user: "node",
password: "1234",
database: "test",
};
var sessionStore = new MySQLStore(options);
app.use(bodyParser.urlencoded({ extended: false }));
app.use(
session({
key: "testkey",
secret: "secret code",
store: sessionStore,
resave: false,
saveUninitialized: true,
})
);
// catch 404 and forward to error handler
app.use(function(req, res, next) {
next(createError(404));
});
// error handler
app.use(function(err, req, res, next) {
// set locals, only providing error in development
res.locals.message = err.message;
res.locals.error = req.app.get('env') === 'development' ? err : {};
// render the error page
res.status(err.status || 500);
res.render('error');
});
module.exports = app;
login.js
var express = require('express');
var router = express.Router();
var mysql_odbc = require('../db/db_conn')();
var conn = mysql_odbc.init();
/* GET login page. */
router.get('/', function (req, res, next) {
res.render('login')
});
router.post('/', function (req, res, next) {
var userId = req.body['userId'];
var userPw = req.body['userPw'];
conn.query('select * from testuser where testid=? and testpwd=?',[userId,userPw], function (err, rows, fields) {
if (!err) {
if (rows[0]!=undefined) {
res.send('id : ' + rows[0]['testid'] + '<br>' +
'pw : ' + rows[0]['testpwd']);
console.log(req.session);
} else {
res.send('no data');
}
} else {
res.send('error : ' + err);
}
});
});
module.exports = router;
로그인성공시 확인해보려고 consloe를 써봤는데 undefinded가 뜹니다 ㅠㅠ
login.ejs
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Login</title>
</head>
<body>
<h1>login</h1>
<form method='post' action='login'>
<label>id :</label><input type="text" name="userId"><br>
<label>pw :</label><input type="password" name="userPw"><br>
<input type="submit">
</form>
</body>
</html>
정말 몇시간째 이것만 헤메고있습니다 도움이절실합니다.. 선배님들께 도움을 요청합니다 ㅠㅠ