2017-09-05 11 views
0

私はバージョン4.8.0の続編を使用しています。 Missing where attribute in the options parameterオプションパラメータの属性が見つかりません - 続行

const role = req.body; 

sequelize.transaction((t)=> { 
    return sequelize.models.role.update(role, {where: req.params, transaction:t}).then(() => { 
     res.json({success: true});   
    }) 
    }) 
    .catch(errorCatch(res)); 
} 

ログreq.paramsが、それはこのであることを示しています:問題がどこにある{ id: 'f212d399-f139-4d76-b892-7c2a83281f9b' }ようではありません、それはしかし、私はこのエラーを取得しています、ドキュメントhttp://docs.sequelizejs.com/class/lib/model.js~Model.html#static-method-updateに従って正しいはずのようにこれが見えます。 誰かが私が間違っていることを教えてもらえますか?私はそれが取引と関係があるかもしれないと思う。

答えて

0

このエンドポイントをGraphQL変異として作成しました。これは基本的に同じコードで動作します。私はまた、私の後遺症を3.30.2に変更しましたが、突然変異で働いていることとは何の関係もありませんでした。

const UpdateRole = { 
type: ResponsePayload, 
args: baseUpdate, 
resolve: (root, role, context) => { 
    return joiValidate({ 
    permission: "WriteRole", 
    obj: role, 
    joiModel: roleJoiModel, 
    user: context.user 
    }).then(() => { 
    return sequelize.transaction(t => { 
    return sequelize.models.role 
     .update(role, { where: { id: role.id } }, { transaction: t }) 
     .then(() => { 
     return sequelize.models.role.findOne({ where: { id: role.id } }); 
     }) 
     .then(r => { 
     return Promise.all([ 
      r.setPermissions(role.permissions || [], { transaction: t }), 
      r.setUsers(role.users || [], { transaction: t }) 
     ]); 
     }) 
     .then(r => { 
     if (role.isDefault) { 
      return sequelize.models.role 
      .update(
       { isDefault: false }, 
       { 
       where: { 
        id: { 
        $ne: role.id 
        } 
       } 
       } 
      ) 
      .then(() => { 
       return Promise.resolve({ success: true }); 
      }); 
     } else { 
      return Promise.resolve({ success: true }); 
     } 
     }); 
    }); 
    }); 
関連する問題