• 카테고리

    질문 & 답변
  • 세부 분야

    풀스택

  • 해결 여부

    해결됨

mongoDB local 로그인 질문입니다

20.03.15 20:29 작성 조회수 168

0

mongoDB를 사용해서 local로그인을 구현하려고 하고 있습니다. 

1.  mongoose로 연결을 시킬때 admin을 꼭 사용해야 하는건가요? 아래를보면 admin부분에 dbName을 넣어도 되는데 admin을 사용하는 이유가 궁금합니다. admin을 사용하고 안하고의 차이점이 무엇인가요?

2. 강의 내용을 토대로 local로그인을 구현중인데 몇시간째 계속 달리지지 않아 제가 방향성이 잘못된것인지 질문드립니다.  제가 user를 findOne을 할 때 .then() 안에서는 user가 null 입니다. 음.. 제가 잘못된 방향으로 구현하고 있는 중인가요? 

 mongoose.connect('mongodb://localhost:27017/admin', { 
            dbName: 'nodeJS',
})
-------------- 아래는 -----------------------------
router.post('/join'async (reqresnext=> {
    const { submitEmailsubmitPassword } = req.body;

    try {
        const user = User.findOne({ email_id: submitEmail })
        console.log('-----------user-------',user)
        if(user) {
            req.flash('joinError''이미 가입된 회원입니다.');
            return res.redirect('/login');
        } else {
            console.time('암호화 시간')
            await bcrypt.hash(password12); // 숫자가 높을수록 안정성이 높고 시간이 느려진다.
            console.timeEnd('암호화 시간'// 시간이 1초정도 걸릴때 까지 숫자를 늘리거나 줄여본다.
            await new User({
                email_id: submitEmail,
                password: submitPassword
            }).save().then(()=>{
                return res.redirect('/login');
            });
            // return res.redirect('/login');
        }
    } catch (err) {
        console.log(err);
        next(err);
    }
});

답변 2

·

답변을 작성해보세요.

0

아 감사합니다! 

0

await User.findOne 하셔야 합니다. 프로미스 앞에 await을 빼먹으셨네요. 그리고 await을 한 순간 then은 필요없습니다. then만 하시든지 아니면 await만 하시든지입니다.