일단 Mysql 로 DB 를 다루기 전에 그냥 파일로 저장해봤다.
로그인 완료창이랑 로그아웃때 템플릿엔진으로 좀 괜찮은 디자인을 사용하고 싶은데
디자인하는거는 너무 어려워서 나중에 디자이너한테 부탁해야겠다.
디자인이 일단 너무 구림...
코딩하기 전 구상... 와 글씨 너무 끔찍하다 아무리 나 혼자 보는거지만...
코드...
var express = require('express')
var session = require('express-session')
var MySQLStore = require('express-mysql-session')(session)
var bodyParser = require('body-parser')
var app = express()
app.use(bodyParser.urlencoded({ extended: false }));
app.use(session({
secret: 'djqiowjd2212@@!sd32dk9023kjd09j',
resave: false,
saveUninitialized: true,
store:new MySQLStore({
host: 'localhost',
port: 3306,
user: 'root',
password: 'root',
database: 'adopt'
})
}));
app.set('view engine', 'ejs')
app.set('views', './views')
app.get('/adopt_login', function(req, res){
res.render('view')
})
app.get('/adopt_logout', function(req, res){
delete req.session.displayName;
res.redirect('/welcome')
})
var users =[
{
username:'Jeong',
password:'111',
displayName:'Jeong'
}
];
app.post('/adopt_login', function(req, res){
var uname = req.body.username;
var pwd = req.body.password;
for(var i=0; i<users.length; i++){
var user = users[i];
if(uname === user.username && pwd === user.password){
req.session.displayName = user.displayName;
return res.redirect('/welcome');
}
}
res.send('Who are u <a href="/Adopt_login">Login</a>');
});
app.get('/welcome', function(req, res){
if(req.session.displayName){
res.send(`
<h1>Hello, ${req.session.displayName}</h1>
<a href="/adopt_logout">logout</a>
`)
} else {
res.send(`
<h1>Welcome</h1>
<a href="/adopt_login">Login</a><br>
<a href="/adopt_register">Register</a>
`);
}
})
app.get('/adopt_register', function(req, res){
var output=`
<h1>Register</h1>
<form action="/adopt_register" method="post">
<p>
<input type="text" name="username" placeholder="username"
</p>
<p>
<input type="password" name="password" placeholder="password"
</p>
<p>
<input type="text" name="displayName" placeholder="displatName"
</p>
<p>
<input type = "submit">
</p>
</form>
`
res.send(output)
})
app.post('/adopt_register', function(req, res){
users.push({
username:req.body.username,
password:req.body.password,
displayName:req.body.displayName
})
req.session.displayName = req.body.displayName;
req.session.save(function(){
res.redirect('/welcome')
})
})
app.listen(3003, function(){
console.log('Connected 3003!');
});
느낀점...
실제 서비스를 이용할때는 파일로 DB 관리를 하면 전혀 실용적이지 않을 것같다.
포트연결이 끊어지는 순간 다 휘발...
sql 로 빨리 만들어봐야겠다.