不想返回整个对象,如何过滤掉我不想要的东西

Don't want to return the whole object, how to filter out the things that I don't want?

本文关键字:过滤 我不想 返回 对象 何过滤 不想      更新时间:2023-09-26
    return res.send({"user": user});

返回的用户对象是这样的(见下文),但我想隐藏密码、确认令牌和__v字段。

{
    "user": {
        "_id": "566786",
        "detail": {
            "lastUpdate": "2015-01-22T22:06:22.951Z",
            "registrationDate": "2015-01-22T02:15:07.379Z",
            "firstName": "Testing",
            "lastName": "Testing",
        },
        "info": {
            "confirmationToken": "3dc917fbfd6f47e",
            "password": "$2a$08$4ugeIPC.5nCMQiyutL11i",
            "email": "testing@abcdefgxxxxxx.com",
        }
    },
}

我希望它是这样的:

{
    "user": {
        "_id": "566786",
        "detail": {
            "lastUpdate": "2015-01-22T22:06:22.951Z",
            "registrationDate": "2015-01-22T02:15:07.379Z",
            "firstName": "Testing",
            "lastName": "Testing",
        },
        "info": {
            "email": "testing@abcdefgxxxxxx.com",
        }
    },
}

我应该如何过滤掉那些我不想要的字段?

只需通过删除属性来删除它们

delete user.user.info.password;
delete user.user.info.confirmationToken;
return res.send({"user": user});