1
0

Video 104: Securely Storing Passwords: Part 2

This commit is contained in:
JayWll 2020-04-13 15:26:38 -06:00
parent 015ea3619f
commit 9b4115afd5
3 changed files with 23 additions and 3 deletions

View File

@ -1,7 +1,8 @@
const mongoose = require('mongoose') const mongoose = require('mongoose')
const validator = require('validator') const validator = require('validator')
const bcrypt = require('bcryptjs')
const User = mongoose.model('User', { const userSchema = new mongoose.Schema({
name: { name: {
type: String, type: String,
required: true, required: true,
@ -40,4 +41,16 @@ const User = mongoose.model('User', {
} }
}) })
userSchema.pre('save', async function(next) {
const user = this
if (user.isModified('password')) {
user.password = await bcrypt.hash(user.password, 8)
}
next()
})
const User = mongoose.model('User', userSchema)
module.exports = User module.exports = User

View File

@ -48,7 +48,11 @@ router.patch('/tasks/:id', async (req, res) => {
} }
try { try {
const task = await Task.findByIdAndUpdate(req.params.id, req.body, { new: true, runValidators: true }) const task = await Task.findById(req.params.id)
updates.forEach((update) => task[update] = req.body[update])
await task.save()
if (!task) { if (!task) {
return res.status(404).send() return res.status(404).send()

View File

@ -48,7 +48,10 @@ router.patch('/users/:id', async (req, res) => {
} }
try { try {
const user = await User.findByIdAndUpdate(req.params.id, req.body, { new: true, runValidators: true }) const user = await User.findById(req.params.id)
updates.forEach((update) => user[update] = req.body[update])
await user.save()
if (!user) { if (!user) {
return res.status(404).send() return res.status(404).send()