如何在 GraphQl 和 Neo4js 中处理响应

Posted

技术标签:

【中文标题】如何在 GraphQl 和 Neo4js 中处理响应【英文标题】:How to handle response in GraphQl and Neo4js 【发布时间】:2019-03-03 07:08:31 【问题描述】:

如果电子邮件已存在于数据库中,我将无法获得回复。 我尝试了下面的示例代码。但我的回应是空的(见图) 这是我的api

"query": "mutation authenticateUser($Phone: String!,$Email: String!, $type: String!, $otp: Int!)  authenticateUser(Phone : $Phone,Email: $Email,type : $type, otp : $otp)  status  ", "variables" : this.authenticateUserObj

和后端代码:

router.post('/graphql', express_graphql(request => 
return 
    schema: schema,
    rootValue: root,
    graphiql: true
    

));

var root = 
authenticateUser : authenticateUser
;

var schema = buildSchema(`
type Mutation 
   authenticateUser(Phone:  String, Email: String,type: String,otp: Int,status: String): Authenticate

type Authenticate 
    Phone : String
    Email : String
    Type : String
    otp : Int
    status: String

`);

var authenticateUser = function(Phone, Email, type, otp) 
db.cypher(
    query: "MATCH (n:userNodes) where n.Email='"+Email+"' RETURN count(*) as total",
, function (err, results) 
    if(results[0]['total'] > 0)
    
        return status: "Email already exist";
    
);

【问题讨论】:

【参考方案1】:

你在 results[0] 中获得价值吗?是对象还是数组?

【讨论】:

是的,以整数形式获取结果。 我唯一的问题是为什么 (return status: "Email already exists";) 没有在 db.cypher 中发回响应?如果我在 db.cypher 之外返回响应,它就像我想要的那样工作。

以上是关于如何在 GraphQl 和 Neo4js 中处理响应的主要内容,如果未能解决你的问题,请参考以下文章

如何在 GraphQL 中处理错误并发送响应

如何在 GraphQL Apollo 客户端中处理异步突变

如何在 Spring 中为 GraphQL 实现异常处理程序

你如何在 GraphQL 中处理多个类型的数组(例如:不同的内容块)?

如何在 GraphQL (Relay) 中查询和改变数组类型?

如何在 Graphql-Java 中处理运行时多态性