• 카테고리

    질문 & 답변
  • 세부 분야

    풀스택

  • 해결 여부

    미해결

Async / await 에 관한 질문입니다

18.11.09 19:29 작성 조회수 118

0

질문. 1

교과서 66페이지 하단에

——————————————————————

async function findAndSaveUser(Users) {

try {

let user = await Users.findOne({});

user.name = 'zero';

user = await user.save();

user = await Users.findOne({gender: 'm'});

//생략

} catch (error) {

console.log(error);

}

}

——————————————————————

여기에서 만약 let user = await Users.findOne({}); 이 코드가 reject 된다면

Catch에서 에러가 뜨는게 맞나요?

질문. 2

373페이지 localStategy.js 에 있는 코드중

——————————————————————

async (email, password, done) => {

try {

const exUser = await User.find({ where: { email } });

if (exUser) {

const result = await bcrypt.compare(password, exUser.password);

if (result) {

done(null, exUser);

} else {

done(null, false, { message: '비밀번호가 일치하지 않습니다.' });

}

} else {

done(null, false, { message: '가입되지 않은 회원입니다.' });

}

} catch (error) {

console.error(error);

done(error);

}

——————————————————————

const exUser = await User.find({ where: { email } });

Q. 1
이 코드에서 찾는 email이 없다면 exUser에는 그냥 빈 값이 담기는건지
아니면 catch로 가서 오류를 일으키는건지 궁금합니다

Q. 2
위에 있는 코드에서 어떤 경우에 catch(error)가 뜨는지 궁금합니다

Q.3
exUser.password 이 부분에서 exUser는 { where: { email } } 이렇게 이메일에 대한 정보만 받아왔는데
어떻게 .password로 비밀번호에도 접근할 수 있나요?

질문 많이 하는데 매번 친절하게 알려주셔서 감사드려요

답변 2

·

답변을 작성해보세요.

0

박현성님의 프로필

박현성

질문자

2018.11.09

빠른 답변 감사합니다!!!

0

  1. await에서 발생한 에러는 catch에서 잡힙니다.

  2. exUser에는 null이 담깁니다.
  3. await 부분에서 에러가 날 수 있습니다.
  4. where는 이메일에 대한 정보만 받는 게 아니라, 해당 이메일을 가진 유저를 찾는 것입니다. attributes 속성이 해당 컬럼에 대한 정보만 받는 옵션입니다.