Express.js
Node.js - Twitter Clone Coding // Logging out
selene park
2021. 3. 30. 23:46
logout.js
const express = require('express');
const app = express();
const router = express.Router();
const bodyParser = require("body-parser");
const User = require('../schemas/UserSchema');
//password hash작업하기
const bcrypt = require("bcrypt");
app.use(bodyParser.urlencoded({ extended:false}));
//get(1,2,3) -> 1,2,3... 순서대로 execute
router.get("/", (req, res, next)=>{//it means that / is equal views, top level
if(req.session){
req.session.destroy(()=>{
res.redirect("/login");
})
}
})
module.exports = router;
app.js
const express = require('express');
const app = express();
const port = 3003;
const middleware = require('./middleware');//it means that current folder is equal .
//css파일 알려주기
const path = require('path');
const bodyParser = require("body-parser");
const mongoose=require("./database");
const session = require("express-session");
const server = app.listen(port, ()=>{//callback 함수
console.log("Server listening on port" + port);
});
//서버에 알려주기
app.set("view engine", "pug");
app.set("views", "views");
//바디파서 서버에게 알려주기
app.use(bodyParser.urlencoded({ extended:false}));
//정적파일(css) 서버에게 알려주기
app.use(express.static(path.join(__dirname, '/public')));
//session
app.use(session({//passing option 설정
secret: "bbq chips",
resave: true,
saveUninitialized:false
}))
// Routes
const loginRoute = require('./routes/loginRoutes');
const registerRoute = require('./routes/registerRoutes');
const logoutRoute = require('./routes/logout');
app.use("/login", loginRoute);//
app.use("/register", registerRoute);//re
app.use("/logout", logoutRoute);
//get(1,2,3) -> 1,2,3... 순서대로 execute
app.get("/", middleware.requireLogin, (req, res, next)=>{//it means that / is equal views
var payload={
pageTitle:"Home",
userLoggedIn: req.session.user
}
res.status(200).render("home",payload); // 이게 views/home.pug
});