는 이전에 내 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에서 "setter"를 꺼내면 올바르게 표시됩니다. 위에서 볼 수 있듯이
이, 세터 당신이 원시 MongoDB의 문서를 가져 와서 설정 전에 데이터를 변환 할 수 있습니다 :
지금이 내 문제는 "세터"과 같이 설명이다 실제 키의 값으로
나에게 이것은 Setter가 실제로 Getter처럼 행동하고 데이터베이스에서 BACK으로 오는 데이터를 변형하는 것처럼 보입니다.
나는 이것을 완전히 오해하고 있습니까?
에서 수정되었습니다 몽구스의 버그가 실제로 있었다, 그러나 당신이 user.doc.password하는 user.password 비교하는 시도가 (어떤이 있어야 원시 몽고 문서)? –