sql >> データベース >  >> NoSQL >> MongoDB

node.jsとmongodbで登録とログインフォームを作成する

    Alex YoungによるNodepadアプリケーションで、実行しようとしていることの完全なサンプルを見つけることができます。確認する必要がある2つの重要なファイルは次のとおりです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. マングースデザインモデルの埋め込みドキュメントと参照?

    2. WindowsホストからドッキングされたRedisにアクセスする

    3. Node.jsを使用してデータを作成、読み取り、更新、削除します-Mongoose

    4. マングース_idと文字列の比較