#mongodb #node.js #express #mongoose
#mongodb #node.js #экспресс #мангуст
Вопрос:
я хочу сохранить имя пользователя и пароль внутри базы данных mongodb, а позже получить значения базы данных и проверить, существуют ли имя пользователя и пароль внутри базы данных.Если это действительно существует, я бы перенаправил на другую страницу.Как я могу добиться этого с помощью node.js и mongodb.Я могу хранить значения внутри базы данных.Но запутался в том, как извлекать значения и сверять их со значениями, указанными в значениях полей формы.В mongodb нет метода, подобного fetchByName или чему-то подобному. Может кто-нибудь помочь мне с кодом.
Ответ №1:
Я думаю, вам следует взглянуть на исходный код Nodepad, там очень хорошо объясняется, как добиться этого с помощью Mongoose:
User.virtual('password')
.set(function(password) {
this._password = password;
this.salt = this.makeSalt();
this.hashed_password = this.encryptPassword(password);
})
.get(function() { return this._password; });
User.method('authenticate', function(plainText) {
return this.encryptPassword(plainText) === this.hashed_password;
});
User.method('makeSalt', function() {
return Math.round((new Date().valueOf() * Math.random())) '';
});
User.method('encryptPassword', function(password) {
return crypto.createHmac('sha1', this.salt).update(password).digest('hex');
});
User.pre('save', function(next) {
if (!validatePresenceOf(this.password)) {
next(new Error('Invalid password'));
} else {
next();
}
});