MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

създаване на форма за регистрация и вход в node.js и mongodb

Можете да намерите пълна извадка от това, което се опитвате да направите в приложението Nodepad от Alex Young. Двата важни файла, които трябва да разгледате, са тези 2:

https://github.com/alexyoung/nodepad/blob/master/models.js
https://github .com/alexyoung/nodepad/blob/master/app.js

Част от модела изглежда така:

  User = new Schema({
    'email': { type: String, validate: [validatePresenceOf, 'an email is required'], index: { unique: true } },
    'hashed_password': String,
    'salt': String
  });

  User.virtual('id')
    .get(function() {
      return this._id.toHexString();
    });

  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();
    }
  });

Мисля, че той също обяснява кода на сайта на dailyjs.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Съвети за надграждане на Percona сървър за MongoDB

  2. 'process.nextTick(function() { throw err; })' - Undefined не е функция (mongodb/mongoose)

  3. mongoengine - Заявка към ListField на EmbeddedDocumentField

  4. Как да продължа вмъкването след грешка с дублиран ключ с помощта на PyMongo

  5. Най-бързият MongoDB на Azure!