Guest User

Untitled

a guest
Feb 22nd, 2018
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.69 KB | None | 0 0
  1. var mongoose = require('mongoose');
  2. var bcrypt = require('bcryptjs');
  3. var Schema = mongoose.Schema;
  4.  
  5. var UserSchema = new Schema({
  6. name: String,
  7. email: String,
  8. password: String,
  9. info: String
  10. });
  11.  
  12. var User = module.exports = mongoose.model('User', UserSchema);
  13.  
  14. module.exports.createUser = function(newUser, callback){
  15. bcrypt.genSalt(10, function(err, salt) {
  16. bcrypt.hash(newUser.password, salt, function(err, hash) {
  17. newUser.password = hash;
  18. newUser.save(callback);
  19. });
  20. });
  21. }
  22.  
  23. module.exports.getUserByUsername = function(username, callback){
  24. User.findOne({username : username}, callback);
  25. }
  26.  
  27. module.exports.getUserById = function(id, callback){
  28. User.findById(id, callback);
  29. }
  30.  
  31. module.exports.checkPassword = function(candidatePass, hash, callback){
  32. bcrypt.compare(candidatePass, hash, function(err, res) {
  33. if(err) throw err;
  34. callback(null, res);
  35. });
  36. }
  37.  
  38. //Mongoose Setup
  39. var mongoose = require('mongoose');
  40. var Schema = mongoose.Schema;
  41. mongoose.connect("MY_DB");
  42. var path = require('path');
  43. var appDir = path.dirname(require.main.filename);
  44. var bodyParser = require('body-parser')
  45. var User = require('../models/user.js');
  46.  
  47. //Express Setup
  48. var express = require('express');
  49. var router = express.Router();
  50. var app = express();
  51. var expressValidator = require("express-validator");
  52.  
  53. app.use(bodyParser.urlencoded({ extended: false }));
  54. app.use(expressValidator());
  55. app.use(bodyParser.json());
  56.  
  57. //Routes
  58. router.get('/register', function(req, res){
  59. res.sendFile(appDir + "/views/register.html");
  60. })
  61.  
  62. router.post('/register', function(req, res) {
  63. req.check('name', 'Name must be Filled in').notEmpty();
  64. req.check('email', 'Email must be Filled in').notEmpty();
  65. req.check('email', "Invalid Email").isEmail();
  66. req.check('password', 'Password Field must be Filled in').notEmpty();
  67. req.check('password', 'Passwords do not Match').equals(req.body.password2)
  68. var errors = req.validationErrors();
  69. if(errors) res.send(errors)
  70. else{ User.createUser({
  71. name: req.body.name,
  72. email: req.body.email,
  73. password: req.body.password,
  74. info: req.body.user_bio
  75. }, function(){
  76. console.log('User Created');
  77. })
  78. }
  79. })
  80.  
  81. //Exports
  82. module.exports = router;
  83.  
  84. User.createUser({
  85. name : req.body.name,
  86. ...
  87. }, ...);
  88.  
  89. var user = new User();
  90. user.name = req.body.name;
  91. user.email = req.body.email;
  92. user.password = req.body.password;
  93. user.info = req.body.user_bio;
  94. user.save().then(function(err, result) {
  95. console.log('User Created');
  96. });
  97.  
  98. User.pre('save', function(next) {
  99. bcrypt.genSalt(10, function(err, salt) {
  100. bcrypt.hash(this.password, salt, function(err, hash) {
  101. this.password = hash;
  102. next();
  103. });
  104. });
  105. }
Add Comment
Please, Sign In to add comment