के साथ बीयर्रीप्ट का उपयोग करके मैं अपने अनुक्रम मॉडल के साथ bcrypt-nodejs
पैकेज का उपयोग करने की कोशिश कर रहा हूं और मेरे मॉडल में हैशिंग को शामिल करने के लिए एक ट्यूटोरियल का पालन करने की कोशिश कर रहा था, लेकिन मुझे generateHash
पर एक त्रुटि मिल रही है। मुझे इस मुद्दे को समझने की प्रतीत नहीं हो रही है। क्या बीक्रिप्ट को शामिल करने का कोई बेहतर तरीका है?सीक्वेलिज मॉडल
त्रुटि:
/Users/user/Desktop/Projects/node/app/app/models/user.js:26
User.methods.generateHash = function(password) {
^
TypeError: Cannot set property 'generateHash' of undefined
at module.exports (/Users/user/Desktop/Projects/node/app/app/models/user.js:26:27)
at Sequelize.import (/Users/user/Desktop/Projects/node/app/node_modules/sequelize/lib/sequelize.js:641:30)
मॉडल:
var bcrypt = require("bcrypt-nodejs");
module.exports = function(sequelize, DataTypes) {
var User = sequelize.define('users', {
annotation_id: {
type: DataTypes.INTEGER,
autoIncrement: true,
primaryKey: true
},
firstName: {
type: DataTypes.DATE,
field: 'first_name'
},
lastName: {
type: DataTypes.DATE,
field: 'last_name'
},
email: DataTypes.STRING,
password: DataTypes.STRING,
}, {
freezeTableName: true
});
User.methods.generateHash = function(password) {
return bcrypt.hashSync(password, bcrypt.genSaltSync(8), null);
};
User.methods.validPassword = function(password) {
return bcrypt.compareSync(password, this.local.password);
};
return User;
}
बस एक ध्यान दें: इससे पहले कि आप इस तैनात, कोशिश करते हैं और [देशी bcrypt मॉड्यूल] (https://www.npmjs.com/package/bcrypt) bcrypt-NodeJS मॉड्यूल के बजाय का उपयोग करें। यह हैशिंग को बहुत तेज करेगा क्योंकि इसे जावास्क्रिप्ट के बजाय सी ++ में कार्यान्वित किया गया है। – leroydev