Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

257
Views
Error: valor esperado del tipo 'String!' pero el valor no está definido

Usé este código en mi aplicación Stelve Kit. Quiero enviar el correo electrónico para consultar datos de graphql. Intento usar este código pero me da error.

 <script lang="js"> import { gql, operationStore, query, setClient } from '@urql/svelte'; import client from '../client'; setClient(client); import { userSession } from '../store.js'; let user; userSession.subscribe((val) => { user = val; }); console.log("user = "); console.log(user.id); console.log(user.email); const postsQuery = gql` query GetAllPosts($size: Int!, $cursor: String, $email: String!) { GetPostByUsersEmail(_size: $size, _cursor: $cursor, email: $email) { data { email username posts { data { title } } } } } ` const allPosts = operationStore( postsQuery, { size: 100 }, { requestPolicy: 'network-only' }, { email: 'test@email.com' } ) query(allPosts); console.log(allPosts) </script>

con esquema

 type User @auth(primary: "email") { username: String! email: String! posts: [Post!] @relation } type Post @protected(membership: "User", rule: ["read", "write", "create"]) { title: String! content: String! author: User! } type Query { listPosts: [Post] users(username: String!): [User] posts(title: String!): [Post] GetPostByUsersEmail(email: String!): [User] }

Creo que todo está bien, pero los datos de allPosts no se adjuntan y obtuve este error de datos de console.log (allPosts)

 GraphQLError: Variable '$email' expected value of type 'String!' but value is undefined.

Alguien puede ayudar ?

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Hay varias cosas mal en su código.

En lo que respecta a su error, su llamada a operationStore está mal formateada. El primer argumento debe ser su consulta con formato gql (que lo es), el segundo argumento espera un objeto que contenga todas sus variables y el tercer argumento espera un objeto de opciones ( requestPolicy , etc.). Sin embargo, intenta pasar sus variables en dos argumentos separados (2º y 4º). Entonces su llamada a operationStore debería ser:

 const allPosts = operationStore( postsQuery, { size: 100, email: 'test@email.com' }, { requestPolicy: 'network-only' }, )

Esto solucionaría su error inicial. Sin embargo...

Además, su consulta del lado del cliente no coincide con la definición de su esquema. Las variables _size y _cursor no existen en su esquema, y agregó claves de data extraños en su solicitud que no coinciden con sus tipos de esquema de User y Post . Tu consulta debe ser:

 const postsQuery = gql` query GetAllPosts($email: String!) { GetPostByUsersEmail(email: $email) { email username posts { title } } } `

Y, por lo tanto, su llamada operationStore final y modificada debería ser:

 const allPosts = operationStore( postsQuery, { email: 'test@email.com' }, { requestPolicy: 'network-only' }, )
about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!