【问题标题】:Graphql date field type must be Output Type but got: undefinedGraphql 日期字段类型必须是输出类型但得到:未定义
【发布时间】:2017-08-16 15:04:44
【问题描述】:

我有一个使用 node/expres 和 ES6 运行的 graphql 服务器,我正在尝试迁移到 typescript,当我想做 graphql 架构时,我遇到了一些日期类型的问题。我知道 graphql 不包含原生日期类型,但在我的 ES6 实现中,我使用了graphql-date 来提供这个限制。

import {
    GraphQLObjectType,
    GraphQLSchema,
    GraphQLID,
} from 'graphql';

import GraphQLDate from 'graphql-date';

const events = new GraphQLObjectType({
    name: 'events',
    description: 'This represent an Event',
    fields: () => {
        return {
            id: {
                type: GraphQLID,
                resolve(event) {
                    return event.id;
                }
            },
            start: {
                type: GraphQLDate,
                resolve(event) {
                    return event.start;
                }
            }
        };
    }
});

问题是在我的带有打字稿的项目中,当运行服务器时我收到以下消息:

Error: events.start field type must be Output Type but got: undefined.

【问题讨论】:

  • 我自己解决了问题,GraphqlDate 默认不返回任何导致问题的蚂蚁,如果我导入为 import * as ... 日期类型效果很好
  • 解决方案到底是什么?请分享您的代码

标签: node.js express graphql postgraphql


【解决方案1】:

这里的问题是在 TypeScript 中 import Foo from 'foo' 期望模块 'foo' 导出 module.exports.default 属性。 graphql-date 模块改为使用经典的 Node.js 模式覆盖 module.exports

要在 TypeScript 中支持这一点,您可以通过以下方式混合新旧语法:

import GraphQLDate = require('graphql-date');

【讨论】:

    猜你喜欢
    • 2018-06-25
    • 2018-06-30
    • 2019-12-23
    • 2016-06-29
    • 2017-12-12
    • 2018-12-18
    • 2019-09-19
    • 2017-09-21
    • 2017-09-03
    相关资源
    最近更新 更多