POMOTODO : 신규가입계정 502 bad gateway issue

2022. 1. 24. 11:40프로그래밍/개인프로젝트

POMOTODO를 만들면서 작성한 코드를 복습하기 위해 작성하는 글입니다.

 

 

POMOTODO.kr

 

 

What is POMOTODO?


1. 문제 인식 

개인적으로 사용하기 위해 신규가입을 했는데 로그인시 502 bad gateway 이슈발생

기존에 가입되어있던 계정은 문제없이 로그인이 됨

 

2. 문제 원인 분석 

로그인시 db에서 로그인한 계정의 최근 데이터를 불러와서 출력하도록 프로그래밍 되어있는데

데이터가 하나도 없다면 서버에서 에러가 뜨고 응답을 못받으므로 502bad gateway이슈가 발생했던것

 

 

3. 문제 해결 

회원가입시 공백의 데이터를 db의 컬렉션에 생성하도록 코드를 추가해서 해결했음

 

4. 관련코드  

    app.post('/signupResult',function(req, res){
        db.collection('users').findOne({id: req.body.loginId}, function(err,result){
            if(result == null){
                // console.log('아이디가 없음') 
                hasher({password: req.body.password}, function(err, pass, salt, hash){
                    // db의 컬렉션에 데이터 저장하기
                    db.collection('users').insertOne({ id : req.body.loginId, hashPassword : hash, saltPassword : salt, email : req.body.email, number : req.body.number, gender : req.body.gender,birthday : req.body.birthday, }, function(err, result){
                        console.log('db user create')
                    })
                    db.collection('pomodoro').insertOne({ 'id' : req.body.loginId, 'yyyymmdd' : '' ,'contentHTML' : '' }, function(err, result){
                        console.log('pomo생성')
                    });
                    db.collection('todolist').insertOne({ 'id' : req.body.loginId, 'yyyymmdd' : '','todoListHTML' : '' }, function(err, result){
                        console.log('todo생성')
                    });
                    db.collection('not-todolist').insertOne({ 'id' : req.body.loginId, 'yyyymmdd' : '' ,'notTodoListHTML' : '' }, function(err, result){
                        console.log('not-todo생성')
                    });
                    res.send("<script>alert('WELCOME !');location.href='/login';</script>");
                })
            }else{
                // console.log('아이디가 있음')
                res.send("<script>alert('this id is already in use.');location.href='/signup';</script>");
            }
        });
    })