schema로 mongodb에 받은 password 암호화 하기
index.js=============================
app.post('/register', (req, res) => {
const user = new User(req.body)
user
.save()
// 세이브로 넘어가기 전에 models/User.js의 userSchema.pre 코드가 실행 됨
.then(() => {
res.status(200).json({
success: true
})
})
.catch((err) => {
res.json({
success: false, err
})
})
})
models/User.js==========================
userSchema.pre('save', function( next ) {
// save 전에 실행되고, next 호출되면 index.js의 save 이어서 수행
var user = this
if(user.isModified('password')) {
bcrypt.genSalt(saltRounds, function (err, salt) {
if (err) return next(err)
bcrypt.hash(user.password, salt, function (err, hash) {
if (err) return next(err)
user.password = hash
next() // index.js의 register Router의 save로 돌아감
})
})
} else {
next()
}
})
(bcrypt 공식문서 링크텍스트)