Я пытаюсь создать findOneByEmail / id для graphQL. Я видел пару вопросов, постов в блогах и видео, но они не помогли моему делу. Я знаю, что должен добавить фильтр, но я должен что-то упустить
Вот мои resolvers
const users = [
{id: 1, email:'a@a.a',password:'zaq1@WSX', pons:[{value:'test'}]},
{id: 2, email:'b@b.b',password:'ZAQ!2wsx', pons:[{value:'tset'}]}
];
const pons = [{value: 'test'}];
module.exports = {
Query: {
users: () => users,
pons: () => pons,
}
};
typeDefs
const {gql} = require('apollo-server-express');
module.exports = gql`
type Pon {
value: String!
}
type User {
id: Int
email: String!
password: String!
pons: [Pon]!
}
type Query {
findUser(id: Int): [User]
users: [User]
pons: [Pon]
}
`;
app.js
const express = require('express');
const { ApolloServer } = require('apollo-server-express');
const typeDefs = require('./graphql/typeDefs.js');
const resolvers = require('./graphql/resolvers.js');
const server = new ApolloServer({typeDefs, resolvers});
const app = express();
server.applyMiddleware({ app });
app.listen({ port: 4000 }, () =>
console.log(`? Server ready at http://localhost:4000${server.graphqlPath}`)
);
Я использую express
с apollo-server-express
.
Я попытался добавить users(id: Int)
и users(email: String)
, но безуспешно. Вы можете увидеть это в запросе findUser
. Я вызываю запрос как:
query{
findUser(id: 1) {
email
pons {
value
}
}
}
На игровой площадке GQL.
Я хотел бы иметь возможность фильтровать данные на сервере, а не на клиенте, и не могу найти решение где угодно