routing.js 4.81 KB
module.exports = function(app, Users)
{
    var passport = require('passport');

    app.get('/', function(req, res)
    {
        // 로그인 중이면 메인페이지로
        if(req.isAuthenticated())
            res.redirect("/main");
        // 로그인 중이 아니라면 인덱스페이지
        else
        {
            res.render("index");
            console.log("The index page!");
        }
    });
    
    // 로그인 수행 - POST
    app.route('/login')
    .post(passport.authenticate('login',
    {
        successRedirect: '/main',
        failureRedirect: '/'
        //failureFlash : true
    }))
    // unexpected access
    .get(function(req, res)
    {
        res.redirect("/");
    });


    // 로그아웃 수행
    app.get('/logout', function(req, res)
    {
        req.logout();
        res.redirect('/');
    })

    
    // Join
    app.route('/join')
    // 처음 Join화면 랜더 - GET
    .get(function(req, res)
    {
        res.render("join")
    })
    // 실제 Join 수행 - POST
    .post(passport.authenticate('join',
    {
        successRedirect: '/main',
        failureRedirect: '/',
        //failureFlash : true
    }));


    // 메인화면 - 로그인 후 기본 검색화면으로
    app.get('/main', function(req, res)
    {
        // 로그인 중이라면
        if(req.isAuthenticated())
        {
            console.log("Logged in page");
            res.render("main");
        }
        // 로그인 중이 아니라면
        else res.redirect("/");

    });

    // 마이페이지 - 로그인 필수
    app.get('/mypage',function(req, res)
    {
        // 로그인 중이라면
        if(req.isAuthenticated())
        {
            // find를 쓰면, 다행으로 반환되기 때문에 결과의 첫번째 요소를 지정하고 해야함
            // 그래서 하나만을 대상으로 할 때는 보통 findOne을 사용
            // mongoose로 디비 find는 콜백으로 정의해야함.
            Users.findOne({id: req.user}, function(err, user_info)
            {
                console.log("mypage");
                res.render("mypage",
                {
                    id: user_info.id,
                    name: user_info.name
                });    
            });
            
        }
        // 로그인 중이 아니라면
        else res.redirect("/");
    });


    // 동명이인 검색 페이지
    app.get("/samename" ,function(req, res)
    {
        var samename_list = [["강호동", "https://search.pstatic.net/common?type=a&size=60x76&quality=95&src=http://sstatic.naver.net/people/portrait/201304/20130403113314207.jpg"], ["강호동", "https://search.pstatic.net/common?type=a&size=60x76&quality=95&src=http://sstatic.naver.net/people/72/201601061648058211.jpg"]];
        console.log("samename page");
        res.render("samename",{samename : samename_list});
    });

    // 인물-방송정보 페이지
    app.get("/programs", function(req, res)
    {
        var program_list = 
        [
            ["https://search.pstatic.net/common?type=o&size=120x172&quality=90&direct=true&src=http%3A%2F%2Fsstatic.naver.net%2Fkeypage%2Fimage%2Fdss%2F57%2F03%2F30%2F31%2F57_9033031_poster_image_1543806768348.jpg",
            "2018",
            "아모르파티",
            true,
            "SUN",
            "2240"],
            ["https://search.pstatic.net/common?type=o&size=120x172&quality=90&direct=true&src=http%3A%2F%2Fsstatic.naver.net%2Fkeypage%2Fimage%2Fdss%2F57%2F03%2F30%2F31%2F57_9033031_poster_image_1543806768348.jpg",
            "2018",
            "아모르파티",
            true,
            "SUN",
            "2240"]
        ];
        res.render("programs", {programs: program_list});
    });

    
}





/*
(구)직접 DB에 저장하기
.post(function(req, res) // 실제 Join 수행 - POST
{
    // user정보 입력
    var user = new Users();
    user.id = req.body.id;
    user.pwd = req.body.pwd;
    user.name = req.body.name;

    // DB저장
    user.save(function(err)
    {
        if(err)
        {
            console.log(err);
            res.send("Error!")
        }
        else
        {
            console.log("Join Success");
            res.redirect('/');
        }
    });   
});
*/

/*
(구)직접 로그인 하기
app.post('/login', function(req, res)
{
    Users.find({id: req.body.id, pwd: req.body.pwd},{_id: 1}, function(err, user)
    {
        if(err)
        {
            console.log("Error!");
            res.send("Error!")
        }

        // 매칭정보 없음 - 로그인 실패
        if(user.length==0)
        {
            console.log("Login failed!")
            res.send("Login_failed");
        }
        
        // 매칭정보 있음 - 로그인 성공
        else
        {
            console.log("Login Success!")
            res.redirect("/main");
            // main으로 이동
        }
    });
});
*/