2011-07-17 15 views
4

は以前、私は私のUserSchemaは次のように定義されていました:「ゲッター」のように動くマングース「セッター」? MongoDBのとNode.jsの</p> <p>でマングースを使用して

var UserSchema = new Schema({ 
    username:  { type: String, unique: true }, 
    password:  String, 
    email:  { type: Email, unique: true, validate:/^(([^<>()[\]\\.,;:\[email protected]\"]+(\.[^<>()[\]\\.,;:\[email protected]\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/ } 
}); 

は私のユーザーが作成されたとき、私はパスワードを暗号化されました。それから私は「setters」を知ったと、私はこれに私のUserSchemaを変更:私は他の変更を行っていない(私が覚えていること)とユーザーでログインしようとしたとき、私は私のパスワードがあることを発見した

var UserSchema = new Schema({ 
    username:  { type: String, unique: true }, 
    password:  { type:String, set:encryption.Encrypt }, 
    email:  { type: Email, unique: true, validate:/^(([^<>()[\]\\.,;:\[email protected]\"]+(\.[^<>()[\]\\.,;:\[email protected]\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/ } 
}); 

違う。データを見ると、データベースから戻された暗号化されたパスワードは、データベースに格納されたものとは異なります。私のUserSchemaから "セッター"を取り出したら、それは正しいように見えます。

さてこれで私の問題は「セッター」がこのように説明されていることである:あなたが上見ることができるように

、セッターはあなたが 前にデータを変換することができ、それは、生のMongoDBドキュメントに取得し、設定されています実際の キーの値として使用します。

私にとって、このセッターは実際にゲッターのように働き、データをデータベースから元の状態に戻しているように見えます。

私はこれを完全に誤解していますか?

+0

で修正されたマングースのバグでした生の文章帳)? –

答えて

5

これがあるべきである(私は何が起こっているのかわからないんだけど、あなたはuser.doc.passwordするuser.password比較しようとしている実際以来マングース2.0

関連する問題