首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >rest api的typegoose/mongoose日期格式

rest api的typegoose/mongoose日期格式
EN

Stack Overflow用户
提问于 2019-09-23 02:53:37
回答 1查看 881关注 0票数 0

我将typescript用于连接到mongodb的服务器。

我使用openapi文件严格定义输出。

在mongoose中,我非常熟悉如何定义日期,例如:

代码语言:javascript
复制
  birthday: Date;

现在用Typegoose:

代码语言:javascript
复制
  @prop()
  birthday: Date;

到目前为止一切正常,除非我需要从我的express typescript服务器输出,例如:

代码语言:javascript
复制
  public async generateLoginTokensAndHttpResponse (userDoc: User, req: any): Promise<Login> {
    const renewalToken = JwtService.generateRenewalToken(userDoc);
    await JwtRepository.createNewJwt(userDoc._id, renewalToken, req.clientIp, req.headers['user-agent']);
    return {
      tokenAccess: {
        value: JwtService.generateAccessToken(userDoc),
      },
      tokenRenewal: {
        value: renewalToken,
      },
      user: userDoc,
    };
  }

其中"Login“界面如下所示(基于swagger定义生成):

代码语言:javascript
复制
export default interface Login {
  user: {
    verified: boolean;
    email: string;
    firstName: string;
    lastName: string;
    username: string;
    captchaLocked: boolean;
    birthday?: string;
  };
  tokenAccess: { value: string };
  tokenRenewal: { value: string };
}

如果我将birthday?: string;更改为birthday?: Date;,这是可以的,但是这会破坏swagger定义的预期输出:

代码语言:javascript
复制
type: string
format: date-time

迭代所有对象,调用一个函数将所有date对象转换为date-time字符串,代价会很高。

这里的最佳实践是什么?

EN

回答 1

Stack Overflow用户

发布于 2019-12-01 03:05:32

我建议使用JSON.stringify / JSON.parse,它可以将日期从字符串转换为字符串

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58052463

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档