Guest User

Untitled

a guest
Oct 24th, 2018
137
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.55 KB | None | 0 0
  1. const bcrypt = require('bcryptjs')
  2. const db = require('../config/db.config.js')
  3. const User = db.users
  4. const errorHandler = require('../utils/errorHandler')
  5.  
  6. module.exports.register = async function(req, res) {
  7. const candidate = await User.findOne({
  8. where: {
  9. username: req.body.username
  10. }
  11. })
  12.  
  13. if (candidate) {
  14. res.status(409).json({
  15. message: 'This login is already taken. Try another.'
  16. })
  17. } else {
  18. const salt = bcrypt.genSaltSync(10)
  19. const password = req.body.password
  20. const user = new User({
  21. name: req.body.name,
  22. username: req.body.username,
  23. roles: req.body.roles,
  24. password: bcrypt.hashSync(password, salt),
  25. photoSrc: req.file ? req.file.path: ''
  26. })
  27. try {
  28. await user.save()
  29. res.status(201).json(user)
  30. } catch(e) {
  31. errorHandler(res, e)
  32. }
  33. }
  34. }
  35.  
  36. module.exports = (sequelize, Sequelize) => {
  37. const User = sequelize.define('users', {
  38. name: {
  39. type: Sequelize.STRING(100),
  40. required: true
  41. },
  42. username: {
  43. type: Sequelize.STRING(40),
  44. required: true,
  45. unique: true
  46. },
  47. roles: {
  48. type: Sequelize.STRING(100),
  49. required: true
  50. },
  51. password: {
  52. type: Sequelize.STRING(100),
  53. required: true
  54. },
  55. photoSrc: {
  56. type: Sequelize.STRING(200),
  57. default: ''
  58. }
  59. });
  60.  
  61. return User;
  62. }
Add Comment
Please, Sign In to add comment