gpt4 book ai didi

node.js - Node express ( typescript )|将日期类型全局序列化为 epoach ms

转载 作者:行者123 更新时间:2023-12-04 07:31:28 31 4
gpt4 key购买 nike

我希望配置基于 Node 的 API 后端,将所有日期类型序列化为纪元毫秒而不是 ISO。
例如,如果我有以下界面:

export interface Profile {
updatedAt: Date;
updatedBy: string;
}
当我将结构返回给客户端时:
 return res.status(OK).json(myProfile);
我收到以下回复:
   "updatedAt": "2021-06-08T17:06:44.412Z",
"updatedBy": "825e9b827ce329a7ddc8fbdc3f714cbd1c239182"
我希望收到:
   "updatedAt":  1623172004412,
"updatedBy": "825e9b827ce329a7ddc8fbdc3f714cbd1c239182"
并在全局范围内为我的所有端点执行一次
有任何想法吗?

最佳答案

要对任何字段、任何对象执行此操作,您可以定义一个新函数:

let customJSON = (obj) => {
Object.entries(obj).map(([k,v]) => v instanceOf Date && (obj[k] = new Date(v).getTime()));
return obj;
}
然后在 Express 中将此函数注册为中间件:
app.use((req, res, next) => {
const originalSON = res.json
res.json = (status, data) => {
originalSON.call(res, customJSON(data));
}
next();
});

这应该不需要更改您的调用站点:
return res.status(OK).json(myProfile);

关于node.js - Node express ( typescript )|将日期类型全局序列化为 epoach ms,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67908873/

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