Python更改文件名称:如何在流星中更改配置文件名称

关于Python更改文件名称的问题,在how to change profile name fb中经常遇到, 我想知道如何在 Meteor 中更改用户配置文件信息。我使用 accounts-base 包创建了一个应用程序,因此我可以快速管理所有与用户帐户相关的东西。这真的很棒。

我想知道如何在 Meteor 中更改用户配置文件信息。我使用 accounts-base 包创建了一个应用程序,因此我可以快速管理所有与用户帐户相关的东西。这真的很棒。

在官方文档中说:

profile:一个对象(默认情况下)用户可以创建和更新任何数据。

但我怎么能让用户改变它?

关于同一主题,默认情况下使用{{loginButtons}}标签,当用户登录时,我得到以下图像:

enter image description here

有没有可能添加Change profileChange email或类似的东西?

谢谢

29

目前accounts-ui没有内置的更改配置文件按钮,您必须手动进行。

例如,如果你这样做

Meteor.users.update({_id:Meteor.user()._id}, {$set:{"profile.name":"Carlos"}})

您可以在上面的accounts-ui中更改屏幕,您必须显示一个名称,而不是单击以显示上面的对话框的电子邮件。

电子邮件有点棘手,您必须从服务器执行此操作,因为(在 metal.methods / call 中)您无法从客户端修改电子邮件内容,我建议添加新电子邮件并进行验证,而不是更改现有电子邮件(因为它也是他们的登录名)。或者先验证然后更改它,以免将某人的电子邮件更改为无法恢复密码的东西。

Meteor.users.update({_id:Meteor.user()._id}, {$addToSet:{"emails":{address:"newemail@newemail.com","verified":false}}});

或者,如果您希望用户拥有一封电子邮件,他们可以更改:

Meteor.users.update({_id:Meteor.user()._id}, {$set:{"emails":[{address:"newemail@newemail.com"}]});
0

要扩展这个答案,最好将此代码放入(Validated)Meteor 方法。

使用CallPromiseMixin在前端使用 async / await 语法调用此方法

使用simpl-schema验证用户名参数

// imports/api/methods.js
const NO_SPECIAL_CHARACTERS_REGEX = /^[^`~!@#$%^&*()_|+=?;:'"<>{}\[\]\\/]*$/;
export const updateProfileName = new ValidatedMethod({
    name: 'users.updateProfileName',
    mixins: [CallPromiseMixin],
    validate: new SimpleSchema({
        name: { type: String, regEx: NO_SPECIAL_CHARACTERS_REGEX, min: 1, max: 50 },
    }).validator(),
    run({ name }) {
        if (!this.userId) {
            throw new Meteor.Error('User needs to be signed in to call this method');
        }
        return Meteor.users.update({ _id: this.userId }, { $set: { 'profile.name': name } });
    },
});

然后在前端

// imports/ui/changeName.js
Template.changeName.events({
    // ...
    
    async 'submit #change-name-form'(event, instance) {
        event.preventDefault();
        try {
            await updateProfileName.callPromise({ name: instance.$('#profile-name').val() });
        } catch (e) {
            // do something with the error
        }
    },
});

本站系公益性非盈利分享网址,本文来自用户投稿,不代表码文网立场,如若转载,请注明出处

(719)
其实都没有吉他谱c调:窗口功能:如何分区什么都没有
上一篇
Cr7是啥意思:“real(10 7)”是什么意思(10-7 meaning)
下一篇

相关推荐

  • python浅拷贝和深拷贝区别、原理与实现

    示例示例Python中的浅拷贝和深拷贝是指在复制对象时,复制的结果和原来的对象之间的关系。浅拷贝:浅拷贝只复制一层,也就是说,它只复制最外围的对象,而不复制它包含的对象。如果最外围的对象中包含其他对象,那么这些对象将不会被复制,而是使用原来的对象。…

    2023-05-30 14:25:17
    0 52 51
  • python程序员待遇:Python程序员薪酬最高,收入惊人!

    Python程序员的待遇取决于他们的技能水平和工作经验。一般来说,Python程序员的薪资水平较高,尤其是对于那些有丰富工作经验的Python程序员而言,他们的薪资水平更高。此外,Python程序员还可以获得许多其他福利,包括住房补贴、交通补贴、带薪休假等。…

    2023-06-22 01:21:15
    0 62 41
  • python文本情感分析(含代码示例)

    Python文本情感分析是一种使用自然语言处理技术来分析文本中的情感倾向的过程。它可以帮助我们了解用户对特定主题的看法,从而改善产品和服务。…

    2023-04-23 00:28:07
    0 42 51
  • python字符串拼接数字从零开始

    实例实例Python字符串拼接数字,可以使用format()函数或者%运算符来实现。代码实例:…

    2023-08-20 08:25:28
    0 53 57
  • python中import re:如何使用Python中的re模块进行正则表达式匹配

    import re 是Python中正则表达式模块,可以用来处理字符串。它提供了一系列的函数,可以用来查找、替换和分割字符串,以及检查字符串是否符合特定的格式。…

    2023-05-02 10:25:33
    0 86 15
  • python是面向Python的优势

    Python是一种面向对象的编程语言,它提供了一种简单而强大的方法来创建可重用的代码。它使用类和对象来实现面向对象编程,允许程序员将代码封装在类中,以便在不同的程序中重复使用。…

    2023-05-02 04:34:35
    0 36 51
  • python程序包:如何使用Python程序包构建高效的应用程序

    Python程序包是一种用于组织Python模块的形式,它允许程序员将相关的模块组合在一起,以便更轻松地管理和使用它们。Python程序包可以包含函数、类、变量和其他Python代码,以帮助简化程序的开发。…

    2024-03-20 06:08:18
    0 32 94
  • python中的%d:%d个原因你应该学习Python

    示例示例%d 是Python中格式化字符串的占位符,表示用整数来填充。示例:…

    2023-04-25 12:42:58
    0 15 32

发表评论

登录 后才能评论

评论列表(59条)