gpt4 book ai didi

node.js - 如何使用 NestJS 序列化返回 id 字符串而不是 _bsontype

转载 作者:搜寻专家 更新时间:2023-10-30 21:26:20 27 4
gpt4 key购买 nike

使用时

@UseInterceptors(ClassSerializerInterceptor)

就像在文档中解释的一样 here

我得到了想要的过滤结果,但是在使用 mongodb 时,id 被格式化为 _bsontype 而不是普通的 string ,就像以前没有拦截器一样:

{
"id": {
"_bsontype": "ObjectID",
"id": {
"0": 92,
"1": 108,
"2": 182,
"3": 85,
"4": 185,
"5": 20,
"6": 221,
"7": 12,
"8": 56,
"9": 66,
"10": 131,
"11": 172
}
},
"createdAt": "2019-02-20T02:07:17.895Z",
"updatedAt": "2019-02-20T02:07:17.895Z",
"firstName": "The First Name",
"lastName": "The Last Name",
"email": "giberish@gmail.com"
}

如何将它转换回像这样的普通 ID 字符串?

{
"id": "5c6cb655b914dd0c384283ac",
"createdAt": "2019-02-20T02:07:17.895Z",
"updatedAt": "2019-02-20T02:07:17.895Z",
"firstName": "The First Name",
"lastName": "The Last Name",
"email": "giberish@gmail.com"
"password": "okthen"
}

最佳答案

您可以使用带有选项 toPlainOnly 的类转换器的 @Transform():

import { Transform } from 'class-transformer';

@Entity()
export class User {
@ObjectIdColumn()
@Transform(({ value }) => value.toString(), { toPlainOnly: true })
_id: ObjectID;

ClassSerializerInterceptor 内部使用类转换器的 classToPlain() 方法。

关于node.js - 如何使用 NestJS 序列化返回 id 字符串而不是 _bsontype,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54778197/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com