2017-09-28 2 views
0

J'ai créé une application web de base CRUD en utilisant graphql/sequelize/postgres/react. Le code suivant est un résolveur sequelize dans mon api, et de l'appeler via graphql requête de mon frontend react.js donne l'erreur « .get est pas une fonction »:Erreur de sequelize - "model.get n'est pas une fonction"

let profile = await Profile.find({where: { userId: args.userId }}) 
profile = await Profile.update(args, {where: { userId: args.userId }}) 
return profile.get({ plain: true }) 

Si j'ajoute un objet supplémentaire. trouver à la fonction de résolution entre les appels à object.update et object.get, je ne reçois plus l'erreur:

let profile = await Profile.find({where: { userId: args.userId }}) 
profile = await Profile.update(args, {where: { userId: args.userId }}) 
profile = await Profile.find({where: { userId: args.userId }}) 
return profile.get({ plain: true }) 

Pourquoi ai-je cette erreur, et comment puis-je éliminer sans ajouter l'appel supplémentaire à object.find?

Répondre

0

Ma première réponse n'était pas bonne.

Si vous essayez de mettre à jour et retourner un objet plan jane, utilisez ceci:

let profile = await Profile.findById(args.userId); 
await profile.update(args); 
return profile.toJSON(); 

la méthode « get » retourne une valeur de champ, pas sûr que ce que vous êtes désireux de le faire.

De docs:

instance.field 
// is the same as 
instance.get('field') 
// is the same as 
instance.getDataValue('field')