【问题标题】:Changing the 'status' default property name更改“状态”默认属性名称
【发布时间】:2018-12-27 09:48:43
【问题描述】:

我刚刚尝试了一个名为“meteor-user-status”的好包

来自https://github.com/mizzao/meteor-user-status

我对默认的“状态”属性有些问题

我可以更改默认的“状态”属性名称吗??

"status" : {
    "online" : false,
    "lastLogin" : {
        "date" : ISODate("2018-07-19T16:26:02.326+07:00"),
        "ipAddr" : "127.0.0.1",
        "userAgent" : "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36"
    }
}

因为当我制作用户播种器时它被替换了.. 像这样:

if (Meteor.users.find().count() === 0) {
 var i = 0;
 for (i = 0; i<users.length ; i++) {
  Accounts.createUser({
    username: users[i].username,
    email: users[i].emails[0].address,
    password: 'secret',
    profile : users[i].profile
  });

  Meteor.users.update({ "emails.0.verified": false }, {
    $set: {"emails.0.verified" :true, status: 'a', roles: users[i].roles}
  });
}

}

因为,我的“状态:a”是为了让用户可以登录到应用程序

非常感谢

【问题讨论】:

  • 您为什么不将您的字段从状态重命名(重构)为其他内容?重构你自己的代码通常比弄乱包更容易。如果您的应用不是这种情况,您可能需要对架构和代码结构进行修订。
  • 这就是问题所在。我的学长不允许我重构该领域。他的原因是,文件中的用途太多
  • 你能解决吗?

标签: authentication meteor angular-meteor


【解决方案1】:

为了您的回复,您无法真正重构您的领域,仍有一些选项可供您选择。

其他包

还有其他处理用户状态的状态包。也许他们使用与在用户上使用 status 不同的方法来存储信息。

https://atmospherejs.com/?q=user-presence

部分重构

这将是两种结构的合并。您使用的包将对象保存在状态上。

因此重构可能来自

status: 'a'status: { a: true } wherea` 不会与其他状态字段冲突,只要其名称与所有其他状态字段不同。

也许您可以说服您的架构师考虑这个选项。

分叉和自定义包

您可以分叉包并制作它的本地副本。如果你的本地包版本高于大气上的版本,当没有指定版本时,流星将使用本地版本。

在您的本地包中,您现在可以使用与status 不同的字段名称。

如果您找到一种方法来自定义字段名称,同时保持向后兼容,您甚至可以在 GitHub 上创建拉取请求,从而改进包,这样其他人就不会遇到同样的麻烦。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-07-28
    • 2018-02-15
    • 2014-11-29
    • 1970-01-01
    • 1970-01-01
    • 2012-01-18
    • 2017-02-02
    • 2022-09-30
    相关资源
    最近更新 更多