我在Apollo GraphQL服务器上将Sequelize与MySQL一起使用。
阿波罗(Apollo)的部分不是很重要,但这是交易。
问题是,当您进行查询时,Sequelize将datetime值作为Date对象返回。并且Apollo-Server在从解析器获取数据后,将Date对象转换为秒(使用Date对象的valueOf()函数)。但是,Apollo服务器仅允许Date对象的String数据类型,因此在我的客户端,我得到了诸如“ 385823948287”之类的日期值。
我需要获取日期值作为ISO字符串。或moment.js接受的任何其他形式。
我必须使Sequelize将DATETIME值作为ISOString返回,或者使Apollo Server使Date Objects作为ISO String,而不是用引号引起的秒数。
如果您只知道其中一项工作,请告诉我。
答案 0 :(得分:2)
我使用Graphql ISO Date解决了这个问题。现在我得到了正确的日期字符串。
安装模块,添加scalar DateTime
并将架构中日期值的数据类型更改为DateTime
。导入模块,并将其添加为类型解析器上的DateTime
。