Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var Sequelize = require('sequelize');
- var sequelize = new Sequelize(
- /* Database */ 'mmldb',
- /* Username */ 'root',
- /* Password */ 'rootpassfornow',
- {
- host: 'localhost',
- dialect: 'mysql',
- define: { timestamps: false },
- pool: {
- max: 5,
- min: 0,
- idle: 10000
- }
- }
- );
- sequelize.authenticate()
- .catch(function (err){
- throw err;
- });
- module.exports = sequelize;
- // -------------------------------------
- var crypto = require('crypto');
- var Sequelize = require('sequelize');
- var db = require('../db');
- var User = db.define('users',
- {
- id: {type: Sequelize.INTEGER, autoIncrement: true, primaryKey: true},
- name: {type: Sequelize.STRING, field: 'user',
- validate: {
- is: ["^[0-9a-z_\-]+$",'i'],
- len: [5,20]
- }
- },
- password: { // password-length: 8~30
- type: Sequelize.STRING,
- set: function (val) {
- this.setDataValue('salt', User.generateSalt());
- console.log(val);
- this.setDataValue('password', User.hashPassword(val, this.salt));
- },
- validate: { len: [0,129] }
- },
- salt: {type: Sequelize.CHAR, validate: { len: [0,10] }},
- email: {type: Sequelize.STRING, validate: { isEmail: true }},
- admin: {type: Sequelize.CHAR, validate: { isNumeric: true }},
- gender: {type: Sequelize.CHAR, validate: { isIn: [['m', 'f', 'u']] }},
- birthdayDate: {type: Sequelize.DATE, field: 'birthday', validate: { isDate: true }},
- joinedDate: {type: Sequelize.DATE, field: 'joined_date', validate: { isDate: true }, defaultValue: Sequelize.NOW}
- }, {
- classMethods: {
- generateSalt: function() { return Math.random().toString(36).substr(2, 10); },
- hashPassword: function(pw, salt) { return crypto.createHash('sha512').update(pw + salt).digest("hex"); }
- },
- instanceMethods: {}
- }
- );
- User.sync();
- module.exports = User;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement