节点快递(打字稿)|将日期类型序列化为 epoach ms 全局

时间:2021-06-09 17:16:46

标签: node.js typescript express

我希望配置基于节点的 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"

并为我的所有端点全局执行一次 有什么想法吗?

1 个答案:

答案 0 :(得分:2)

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

app.use((req, res, next) => {
    const originalSON = res.json
    res.json = (status, data) => {
        originalSON.call(res, customJSON(data));
    }
    next();
});

然后在 Express 中将此函数注册为中间件:

return res.status(OK).json(myProfile);

这应该不需要更改您的呼叫站点:

   Cloning into...
相关问题