我对Meteor还是陌生的,正在尝试开发在线同步游戏实验。 通常,一旦参与者同意表格,我想创建一个用户并将该用户添加到我的Players集合中。

我的consent_page.js看起来像这样:

import './consent_page.html';
import { FlowRouter } from 'meteor/kadira:flow-router';
import { Template } from 'meteor/templating';
import { Meteor } from 'meteor/meteor'
import '../../../api/players/methods.js'


Template.consent_page.events({
    'submit .consent-form'(event) {
        event.preventDefault();
        Meteor.call('players.addPlayer');
        FlowRouter.go('/instructions')
    }
});

和我的players.addPlayer方法看起来像这样

import { Meteor } from 'meteor/meteor';
import { Accounts } from 'meteor/accounts-base';
import { Players } from './players.js';
import { Random } from 'meteor/random'

Meteor.methods({
    'players.addPlayer'() {
        console.log('I am in the method');
        username = Random.id();
        user = create_user(username);

        alert(username);
        alert(user);

        Players.insert({
            _id: this.userId,
            enterTime: new Date(),
            status: 'instructions',
            passedQuiz: false,
            quizAttempts: 0,
            needRematch: false,
            condition: 'control'
        });
    }
});


/*
* Helper functions for the methods
*/
//create user in the server
create_user = function (username) {
    return Accounts.createUser({
        username: username,
    });
};

集合Players.js具有集合的定义。

import { Mongo } from 'meteor/mongo'
export const Players = new Mongo.Collection('players');

但是,这不起作用。 我确实被重定向到说明页面,但是没有创建用户。.我收到以下错误:

Error invoking Method 'players.addPlayer': Method 'players.addPlayer' not found [404]

虽然,我在控制台中打印I am in the method消息中得到“ I am in the method在”。 返回create_user的警报undefined 另外,我想创建没有密码的用户(我该怎么做?)。

#1楼 票数:2

Accounts.createUser()方法是基于accounts-base程序包的一部分。 您首先需要导入它 我正在分享我的工作项目中的片段。 希望这可以帮助:

import { Meteor } from 'meteor/meteor';
import { Accounts } from 'meteor/accounts-base';

const bcrypt = require('bcrypt');

Meteor.methods({
  'user.create':function(data){
       return Accounts.createUser({
         name: data.name,
         username: data.userId,
         password: data.password,
       });
  }
});

  ask by amaatouq translate from so

未解决问题?本站智能推荐:

1回复

使用Accounts.FindUserByUsername在“用户”集合(流星)中搜索用户名

非常感谢您的帮助。 现在已经将我的头撞在桌子上了几个小时。 我正在尝试创建一个简单的搜索功能来搜索用户名。 我的目标是能够搜索用户名,并最终将选定的用户名添加到“团队”集合中。 我尝试过轻松搜索,但没有运气。 我现在尝试使用Accounts.FindUserByUsername
1回复

使用帐户为流星应用程序动态生成的用户名

我想动态创建用户名,因此,如果注册了新用户,则只需要名称,姓氏和电子邮件。 这就是我为新创建的用户设置用户名的方式。 如果我想创建一个具有相同名称的用户,这显然会给我带来问题。 这将导致错误Username already exists 。 因此,我正在寻找一些在这种情况下如何
1回复

如果流星用户名中已经存在用户名,如何显示错误消息

我已经使用Meteor Ionic Demo代码创建了我的新应用程序。 现在,我不想使用电子邮件地址注册,而是要使用用户名。 我使用了以下代码( 源代码 ): 现在的问题是,如果用户名已经存在,如何显示错误消息? 当前,它仅显示离子错误图标,而不显示errStr :
1回复

用户名在javascript中匹配时删除帖子

我正在建立一个网站,您可以在其中使用Meteor发布图像和消息。 我一直在尝试添加一个事件,在当前登录用户和发帖者相同的情况下,您可以删除帖子。 这是我想的,但是没有用。 一直说这不是我的帖子,即使两者匹配。 我认为this.currentUser存在问题,但是我不确定如何修复。
1回复

如何通过Useraccounts包从第三方社交登录中提取用户名?

我正在使用流星的Useraccounts包。 我已经配置好了,用户名/电子邮件+密码登录正与登录时显示的用户名一起工作(用户需要在注册时输入用户名)。 但是,当我单击社交登录按钮登录时,我已经登录,但是没有注册用户名。 因此,无论我做什么,日志用户名都不会显示任何内容,即没有用户名
1回复

如何通过用户帐号密码限制帐号创建?

我正在一个仅管理员可以为系统创建用户的应用程序上工作; 表示该用户被限制创建帐户,但是如果为他/她创建了登录凭据,则可以登录。 我正在考虑使用houston:admin手动创建用户,但是如何限制用户使用accounts-ui创建帐户? 我是否应该使用不同的软件包来完全实现这一目标?
4回复

帐户用户界面使用的个性化密码验证功能

流星帐户使用以下功能来验证密码格式: 是否可以覆盖此功能? 如果是这样,怎么办?
2回复

我可以在流星中添加/更改另一个用户的密码吗?

我正在尝试制作一个用户管理应用程序,该应用程序希望给我的用户以管理员权限来创建用户并定义他们的密码和角色。 另外,将来管理员可以更改密码。 流星有可能吗? 我正在使用核心accounts-password包。 有什么建议么 ?