仅在设置页面中选择时显示输入

时间:2017-10-03 02:27:23

标签: node.js mongodb express ejs mern

我想弄清楚如何让用户转到/settings并选择几个复选框,然后当他们转到/new时,他们只会看到与他们选择的输入相对应的输入在/settings时。

我不知道如何做到这一点,我知道我需要将它保存到数据库中但是我应该如何将数据拉到只有我想要的输入显示。我正在考虑将选项设置为布尔值,当它为真时(勾选)然后它将显示输入。这个想法的唯一问题是我不确定如何使用尽可能少的数据库查询来执行此操作。理想情况下,我只发送1个查询而不是10个左右。

1 个答案:

答案 0 :(得分:0)

users集合中,添加settings字段。

示例user文档:

{
    "_id" : ObjectId("59c20694d58a3e3e393fe779"),
    "email" : "user@gmail.com",
    "role" : "user",
    "password" : "$2a$10$5TK8N8T1VohE6hHklqdeCubYmOimBaAcnHWHSKxb4x6AudlWeDeEa",
    "created" : ISODate("2017-09-20T06:11:32.014Z"),
    "settings": {
        "option_1": true,
        "option_2": false,
        "option_3": true,
        "option_4": true
    }
}

然后,在加载/new路线后,请阅读user.settings并在您的模板引擎中,根据设置显示内容。

如果要在多个路径(/new)上使用提到的设置,请考虑将它们存储在会话中。

此外,如果您使用像angular这样的框架,请考虑将设置添加到全局服务。