GraphQL从axios返回空数据
我正在Node.js和Express中编写一个GraphQL服务器。我有一个JSON数据文件,因此我使用Axios从该JSON文件查询数据并将其传递给GraphQL查询GraphQL从axios返回空数据,graphql,axios,express-graphql,Graphql,Axios,Express Graphql,我正在Node.js和Express中编写一个GraphQL服务器。我有一个JSON数据文件,因此我使用Axios从该JSON文件查询数据并将其传递给GraphQL查询 const RootQuery = new GraphQLObjectType({ name:'RootQueryType', fields: { holiday: { type: Holiday, args:{ date:{type:GraphQLString},
const RootQuery = new GraphQLObjectType({
name:'RootQueryType',
fields: {
holiday: {
type: Holiday,
args:{
date:{type:GraphQLString},
},
resolve(parentValue, args) {
return axios.get('http://localhost:3000/holidays?date='+ args.date).then(res => res.data);
}
},
在console.log(res.data)
上,我得到了数据,但是,在从GraphiQL按日期查询时,我得到了数据
{
“数据”:{
“假日”:{
“假日”:空
}
}
}
不久前,我也曾为同样的问题苦苦挣扎。我意识到从RESTAPI/JSON文件获取数据需要一些时间,GraphQL并不等待接收数据。所以我决定使用Async和Wait,这样,GraphQL就等待数据被接收。在您的情况下,代码如下所示:
const RootQuery = new GraphQLObjectType({
name:'RootQueryType',
fields: {
holiday: {
type: Holiday,
args:{
date:{type:GraphQLString},
},
Async resolve(parentValue, args) {
const results= await axios.get('http://localhost:3000/holidays?date='+ args.date)
.then(res => res.data);
return results;
}
},
我在过去的某个时候也遇到过同样的问题。我意识到从RESTAPI/JSON文件获取数据需要一些时间,GraphQL并不等待接收数据。所以我决定使用Async和Wait,这样,GraphQL就等待数据被接收。在您的情况下,代码如下所示:
const RootQuery = new GraphQLObjectType({
name:'RootQueryType',
fields: {
holiday: {
type: Holiday,
args:{
date:{type:GraphQLString},
},
Async resolve(parentValue, args) {
const results= await axios.get('http://localhost:3000/holidays?date='+ args.date)
.then(res => res.data);
return results;
}
},