Javascript value.getTime不是函数GraphQL自定义标量日期
我收到来自外部API的最新更新:1579452599响应 我想用以下格式解析值:Mon Jan 19 2020 13:44:04,我尝试使用custom scallar,但出现以下错误: value.getTime不是函数 我做错了什么 这是我的密码 resolvers.jsJavascript value.getTime不是函数GraphQL自定义标量日期,javascript,node.js,graphql,graphql-js,Javascript,Node.js,Graphql,Graphql Js,我收到来自外部API的最新更新:1579452599响应 我想用以下格式解析值:Mon Jan 19 2020 13:44:04,我尝试使用custom scallar,但出现以下错误: value.getTime不是函数 我做错了什么 这是我的密码 resolvers.js import fetch from 'node-fetch'; import { GraphQLScalarType } from 'graphql'; import { Kind } from 'graphql/lan
import fetch from 'node-fetch';
import { GraphQLScalarType } from 'graphql';
import { Kind } from 'graphql/language';
export const resolvers = {
Query: {
getCrypto: async() => {
const response = await fetch('https://min-api.cryptocompare.com/data/top/totalvolfull?limit=10&tsym=USD&api_key=260d15e639be7b967c2b0e4f9f3b6d656897ccbdfe772b1d24818d9f96d3a6ed')
let data = await response.json()
return data.Data[0].RAW.USD;
}
},
Date: new GraphQLScalarType({
name: 'Date',
description: 'Date custom scalar type',
parseValue(value) {
return new Date(value); // value from the client
},
serialize(value) {
console.log(value)
return value.getTime(); // value sent to the client
},
parseLiteral(ast) {
if (ast.kind === Kind.INT) {
return parseInt(ast.value, 10); // ast value is always in string format
}
return null;
},
})
};
schema.graphql
type CryptoCurrency {
FROMSYMBOL: String
PRICE: Float
TOSYMBOL: String
LASTUPDATE: Date
}
type Query {
getCrypto: CryptoCurrency
}
scalar Date
type MyType {
created: Date
}
在控制台中,我看到了值
以防其他人从谷歌搜索到类似的问题
您应该将
LASTUPDATE
从时间戳转换为实际日期,并且必须乘以1000,因为Javascript使用毫秒
serialize(value) {
console.log( new Date(value).toISOString())
return new Date(value * 1000).toISOString(); // value sent to the client
}
你发现问题了吗?我安装了这个库graphql iso date,它成功了,@Alex你能帮我一下吗?