json - 如何在 GraphQL 中返回 json 字符串作为响应
问题描述
我很新的graphQL。我的要求是发送查询时,graphQL 应该返回如下 JSON 响应
{
user: '$',
name: 'Josh',
age: '30'
}
我尝试了以下方式,但没有达到结果。
var express = require('express');
var graphqlHTTP = require('express-graphql');
var { buildSchema } = require('graphql');
var schema = buildSchema(`
type Query {
user: String!
}
`);
// JSON
var json = {
user: '$',
name: 'Josh',
age: '30'
};
var root = {
user: () => {
return json;
}
};
var app = express();
app.use('/graphql', graphqlHTTP({
schema: schema,
rootValue: root,
graphiql: true,
}));
app.listen(4000);
console.log('Running a GraphQL API server at localhost:4000/graphql');
有人可以指导我哪里出错了。
提前致谢。
解决方案
我用以下方法实现:
var express = require('express');
var graphqlHTTP = require('express-graphql');
var { buildSchema } = require('graphql');
const { GraphQLJSON, GraphQLJSONObject } = require('graphql-type-json');
var schema = buildSchema(`
scalar JSON
type Query {
getObject: JSON
}
`);
var root = {
JSON: GraphQLJSON,
getObject: () => {
return {
name: "jshua",
age: "30",
place: "china",
gender: "Male"
}
}
};
var app = express();
app.use('/graphql', graphqlHTTP({
schema: schema,
rootValue: root,
graphiql: true,
}));
app.listen(4000);
console.log('Running a GraphQL API server at localhost:4000/graphql');
推荐阅读
- variables - 如何在 Lua 中获取表的实际副本?
- javascript - “获取”某些数据时重音问题
- virtualbox - 在 Manjaro(Arch Linux)上通过 AUR 构建 v8 失败 - 消息:“错误:check() 中发生故障”
- spring-boot - 扩展组件的服务的 Spring Boot 测试配置
- redux - 减速器:面向动作的减速器还是面向结构的减速器?
- javascript - 我怎样才能通过
在对象中的字符串中作为子组件的道具? - java - 在 SpringBoot 2.1.1.RELEASE 的 RestTemplate 中添加 HttpHeaders
- javascript - 使用 ES6 按 id 查找
- javascript - 我可以使用 img src 中的 alt= 的值来填写订单中的 Item# 字段吗?
- r - 使用 Shiny 没有 shiny.css