복습 - USER PROFILE
복습 - WEBPACK
실제 코드는 github에 올림(wetube_v2)
💡 user.save() 할 때마다 패스워드가 해싱되는 문제 해결
this.isModified("password")
를 추가해 user.save()를 사용해도 비밀번호가 변경될 때만 pre hook이 실행되도록 함
!this.socialOnly
를 추가해 github 정보를 바탕으로 계정 생성 시에는 user.save()를 사용해도 pre hook이 실행되지 않도록 함 ❗ (복습하면서 새롭게 추가한 부분)// User.js userSchema.pre("save", async function () { if (!this.socialOnly && this.isModified("password")) { this.password = await bcrypt.hash(this.password, 5); } });
💡 populated fields에 sort() 적용 (복습하면서 새롭게 추가한 부분)
const user = await User.findById(id).populate({ path: "videos", options: { sort: { createdAt: "desc" }, }, });