Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Router
- setupRouter() {
- this.router.route('/signup')
- /* POST /users/signup req.body = {email, password} */
- .post(this.userController.registerUser.bind(this.userController))
- this.router.route('/signin')
- /* POST /users/signin req.body = {email, password} */
- .post(this.userController.loginUser.bind(this.userController))
- }
- // Controller
- registerUser(req, res, next) {
- const { email, password } = req.body
- this.userService.registerUser(email, password)
- .then(newUser => res.status(201).json({ newUser }))
- .catch(error => res.status(422).json({ error }))
- }
- // Service
- registerUser(email, password) {
- return this.userResource.registerUser(email, password)
- .then(res => res)
- }
- // Resource
- async registerUser(email, password) {
- const possibleUser = await User.findOne({ email })
- if (possibleUser) throw new Error('Email already taken!')
- const newUser = new User({
- _id: new mongoose.Types.ObjectId(),
- email,
- password
- })
- const salt = await encrypt.genSalt(10)
- const hashedPassword = await encrypt.genHash(newUser.password, salt)
- newUser.password = hashedPassword
- return newUser.save()
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement