MVC 모델에서
class User {
constructor(email,password,name,street,postal,country){
...
async getUserWithSameEmail(){
return db.getDb().collection("userInfo").findOne({email:this.email})
}
를 보고자한다.
비동기함수인 async getUserWithSameEmail() 은 프로미스를 통해, 값을 반환할 수 있다.
그래서 대부분 함수의 실행 코드 앞에 await 를 붙여, 값을 반환하는데
여기서 중요한 점은 , 데이터베이스에 접근하는 findOne은 항상 프로미스를 반환한다.
즉, await를 쓰지않고, (앞으로 더 쓸 코드가 없다면) retrun을 하여, 그대로 함수자체가 값을 가질 수 있게 된다.
const data = await db.getDb().collection("userInfo").findOne({email:this.email})
return data
라는 긴 코드 대신
async getUserWithSameEmail(){
return db.getDb().collection("userInfo").findOne({email:this.email})
}
처럼 짧고 간결한 코드로 정리가 가능한것이다.
async hashedPassword(existUserPassword){
return bcrypt.compare(this.password,existUserPassword)
}
도 마찬가지로, 프로미스를 반환하므로 retrun을 사용하여, 바로 함수의 메서드에 의해 반환될 수 있다.
'공부이야기' 카테고리의 다른 글
[정보처리기사] 합격기념 공부자료 뿌리기 (2024.03) (0) | 2024.06.18 |
---|---|
4. 검색 기능을 만들어보자! 배열, 객체 조작하기 [splice(), filter(), indexOf() ] (0) | 2022.10.05 |
3. Array.map() 에 관하여, (사용자로부터 DB의 값을 숨기는 방법) (1) | 2022.09.23 |
1. 인스턴스화... 대체 넌 누구냐 (0) | 2022.09.15 |
댓글