为什么标量日期GraphQL不起作用

时间:2018-01-11 02:32:55

标签: javascript facebook-graph-api

我有项目,我使用graphql并需要提供日期graphql,当我在解析器中正确显示String类型日期时,但是当我使用scalar Date时解析器我得到false日期。在文档中找不到任何东西。提供日期为Wed Jan 11 2018 21:30:00。我应该安装moment因为我收到警告eprecation warning: value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date()而我在项目中没有使用moment

/*---- doesn't work ----*/
scalar Date
type Event {
  id: ID!
  title: String!
  dateStart: Date!
  dateEnd: Date!
  users: [User]
  room: Room
}
input EventInput {
  title: String!
  dateStart: Date!
  dateEnd: Date!
}

/*---- works ----*/
type Event {
  id: ID!
  title: String!
  dateStart: String!
  dateEnd: String!
  users: [User]
  room: Room
}
input EventInput {
  title: String!
  dateStart: String!
  dateEnd: String!
}

1 个答案:

答案 0 :(得分:2)

您必须在解析器中解析自定义标量日期

Date: {
  __serialize(value) {

    return value; // value sent to the client
  },

  __parseValue(value) {

    return value;
  },
  __parseLiteral(ast) {
    return JSON.parse(JSON.stringify(ast)).value;
  }
}

在解析器中添加此项。这可以解决您的问题