0

我正在构建一个与 protobuf 集成的 graphql。我有一个 gql 架构,例如:

type User {
  userId: ID!,
  createTime: DateTime 
}

问题是如何User仅通过构造函数创建消息对象?指定,我想做: message = new User(['my_user_id', '2018-10-01']).toObject()这样它将转换为正确的 protobuf 消息对象给我。像:

{    
  "userId": "my_user_id",
  "createTime": {
    "seconds": 15000000,
    "nanos": 0
  }
}

但是,createTime 始终是undefined

我尝试了很多方法,仍然无法正常工作(顺便说一下,很少有在线资源在谈论nodejs protobuf时间戳)

我试过message = new User(['my_user_id', '2018-10-01T20:23:32.000Z']).toObject()不工作

我试过了message = new User(['my_user_id', new Date()]).toObject(),不工作

我试过

let timestamp = new proto.google.protobuf.Timestamp()
timestamp.setSeconds(1)
timestamp.setNanos(1)
message = new User(['my_user_id',timestamp]).toObject()

也不工作

有谁知道正确的方法来做到这一点?非常感谢

4

1 回答 1

0

我得到了它。只要做new User(['my_user_id', [1538425412, 0]]).toObject(),就会给出正确的消息对象

{
  "userId": "my_user_id",
  "createTime": {
    "seconds": 1538425412,
    "nanos": 0
  }
}
于 2018-10-19T06:46:14.103 回答