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 
});