2017-11-21 8 views
0

nodejsとmongo dbでユーザー登録を行っていますが、問題はすべてのデータをコレクションに挿入したときにドキュメントのすべてのデータを返すことです。例は一例以下では、私は制限するべき付属のユーザーオブジェクトのパスワードで、mongooseに保存した後にデータが設定されました

newUser = new UserSchema({ 
    firstName : firstName, 
    middleName : middleName, 
    lastName : lastName, 
    email : email, 
    location : location, 
    password : password, 
    createdDate :new Date(Date.now()).toISOString(), 
    role : "user" 
}) 
password : { // in scehma 
    type: String, 
    select :false, 
    hide: true, 
    required:true 
}, 
newUser.save((err,user) => { 
    if(err){ 
     return false; 
    }else{ 
     return user ; // user object should not have password in this 
    } 
}); 

答えて

0

はちょうどあなたがスキーマを定義し、パスワードフィールドでselect:falseを置きます。

のような:

password : {type : String, select : false} 

ので、パスワード提出を返しません。

+0

以下のようにまだ私はパスワードフィールドを取得しています、私はちょうど今でも、私のコレクションを落とし、DBサーバを再起動し、同じ結果が –

+0

だけdb.collection.dropIndex()を使用して、特定のコレクションからインデックスを削除し、サーバを再起動します。パスワードフィールドを取得できません。 –

0

マングース-隠された、このプラグインは、私を助け、とにかく選択:偽が動作するはずはなく、他の後の長いあなたは何ができるプラグイン

0

上で使用することができますしようとした場合、このユーザーを戻す前に、あなたが提出したパスワードを削除することができていますそれから。

newUser.save((err,user) => { 
    if(err){ 
     return false; 
    }else{ 
     user = user.toObject(); 
     delete user.password; 
     return user ; // Now user object do not have password field 
    } 
}); 
+0

私はすべてのAPI呼び出しのために作成する必要はありませんフィールドを介してアプリケーションを持っています –

+0

私は最高の解決策は、@vaibhavpatilによって与えられた答えに行くと思う。 –

関連する問題