Advertisement
Guest User

Untitled

a guest
Jun 16th, 2016
120
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. var Sequelize = require('sequelize');
  2. var sequelize = new Sequelize(
  3.     /* Database */ 'mmldb',
  4.     /* Username */ 'root',
  5.     /* Password */ 'rootpassfornow',
  6.     {
  7.         host: 'localhost',
  8.         dialect: 'mysql',
  9.         define: { timestamps: false },
  10.        
  11.         pool: {
  12.             max: 5,
  13.             min: 0,
  14.             idle: 10000
  15.         }
  16.     }
  17. );
  18.  
  19. sequelize.authenticate()
  20.     .catch(function (err){
  21.         throw err;
  22.     });
  23.    
  24. module.exports = sequelize;
  25.  
  26. // -------------------------------------
  27.  
  28. var crypto = require('crypto');
  29. var Sequelize = require('sequelize');
  30. var db = require('../db');
  31.  
  32. var User = db.define('users',
  33.     {
  34.         id: {type: Sequelize.INTEGER, autoIncrement: true, primaryKey: true},
  35.         name: {type: Sequelize.STRING, field: 'user',
  36.             validate: {
  37.                 is: ["^[0-9a-z_\-]+$",'i'],
  38.                 len: [5,20]
  39.             }
  40.         },
  41.        
  42.         password: { // password-length: 8~30
  43.             type: Sequelize.STRING,
  44.             set: function (val) {
  45.                 this.setDataValue('salt', User.generateSalt());
  46.                 console.log(val);
  47.                 this.setDataValue('password', User.hashPassword(val, this.salt));
  48.             },
  49.             validate: { len: [0,129] }
  50.         },
  51.         salt: {type: Sequelize.CHAR, validate: { len: [0,10] }},
  52.        
  53.         email: {type: Sequelize.STRING, validate: { isEmail: true }},
  54.         admin: {type: Sequelize.CHAR, validate: { isNumeric: true }},
  55.         gender: {type: Sequelize.CHAR, validate: { isIn: [['m', 'f', 'u']] }},
  56.        
  57.         birthdayDate: {type: Sequelize.DATE, field: 'birthday', validate: { isDate: true }},
  58.         joinedDate: {type: Sequelize.DATE, field: 'joined_date',  validate: { isDate: true }, defaultValue: Sequelize.NOW}
  59.     }, {
  60.         classMethods: {
  61.             generateSalt: function() { return Math.random().toString(36).substr(2, 10); },
  62.             hashPassword: function(pw, salt) { return crypto.createHash('sha512').update(pw + salt).digest("hex"); }
  63.         },
  64.         instanceMethods: {}
  65.     }
  66. );
  67. User.sync();
  68.  
  69. module.exports = User;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement