Javascript 通过id/email在graphQL中查找一个元素

Javascript 通过id/email在graphQL中查找一个元素,javascript,express,graphql,apollo,apollo-server,Javascript,Express,Graphql,Apollo,Apollo Server,我正在尝试为graphQL查找电子邮件/id。我看到了一些问题、博客帖子和视频,但它们对我的情况没有帮助。我知道我必须添加一个过滤器,但我必须缺少一些东西 这是我的解析器 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 po

我正在尝试为graphQL查找电子邮件/id。我看到了一些问题、博客帖子和视频,但它们对我的情况没有帮助。我知道我必须添加一个过滤器,但我必须缺少一些东西

这是我的
解析器

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});
常量app=express();
applyMiddleware({app});
app.listen({port:4000},()=>

log(`您可以在GraphQL解析器中获取
id
参数并通过它查询用户

例如

const express=require('express');
const{ApolloServer}=require('apollo-server-express');
const{gql}=require('apollo-server-express');
常量用户=[
{id:1,电子邮件:'a@a.a“,密码:”zaq1@WSX,pons:[{value:'test'}]},
{id:2,电子邮件:'b@b.b,密码:'ZAQ!2wsx',PON:[{value:'tset'}]},
];
const pons=[{value:'test'}];
常量typeDefs=gql`
类型Pon{
值:字符串!
}
类型用户{
id:Int
电子邮件:字符串!
密码:字符串!
pons:[Pon]!
}
类型查询{
findUser(id:Int):用户
用户:[用户]
pons:[Pon]
}
`;
常量解析程序={
查询:{
用户:()=>用户,
桥:()=>桥,
findUser:({id})=>users.find((u)=>u.id==id),
},
};
const server=new ApolloServer({typeDefs,resolvers});
常量app=express();
applyMiddleware({app});

app.listen({port:4000},()=>console.log(`这是
findUser
Query中的
?@AlexIronside解析程序的第二个参数,
{id}
好的,所以我只需要在resolver?@AlexIronside中添加查找和比较。对于现实世界,您应该使用
id
参数从数据库中查找用户。但对于本例,我们有一个内存数据库
users
。因此,是的,您只需要从
users
数组中查找用户。