2016-06-22 6 views
0

Loopback REST APIでは、Userを継承するメンバモデルのisPublic属性を1つ更新する必要があります。私はupdateAttributeを使ってそれを行うことができません。のでLoopbackでupdateAttributeを呼び出すときにValidationError "passwordは空白にできません"というエラーメッセージが表示される

// this works 
Member.update({id: memberId}, {isPublic: !member.isPublic}, cb); 

しかし

+0

私は 'loopbckjs'について考えていません。しかし、あなたの 'Member.update({id:memberId}、{isPublic:!member.isPublic}、cb);'クエリが間違っています。レコード全体を 'isPublic'フィールドに置き換えます。レコードに既存のフィールドがある場合は、 '$ set'を使用してください。 – Shrabanee

+0

これはリモートフックにありますか? –

+0

@RaymondCamden:はい、リモートフックにあります – qais

答えて

0

号にupdateAttributeを呼び出すためのメンバーインスタンスのパスワードをつかんせずに方法があります:私は、update()を使用してpassword can't be blank

Member.findById(memberId, {fields:{id: true, isPublic: true}}, function (err, member) { 
     // this gives ValidationError 
     // member.updateAttribute('isPublic', !member.isPublic, cb); 
}); 

を言っValidationError作品を取得しますあなたは2つのフィールドを持つユーザーを取得し、パスワードはインスタンスでは定義されていません。

updateメソッドはありません。それはupdateAllです。 あなたの2番目の方法は、より良いパフォーマンスを備えています。

+0

'updateAll'は' update'メソッドと同じですhttps://github.com/strongloop/loopback-datasource-juggler/blob/master/lib/dao.js#L2285 -L2290 – qais

関連する問題