我想制作一个小型邀请系统(用户通过ivitation代码向朋友发送电子邮件 - >朋友点击公众网站,每个人都可以去 - >将他的邀请代码放入文本字段和流星搜索此代码,如果它可以找到所有代码一切正常,他可以继续,但当流星找不到代码时,他是一个随机的互联网用户,他不应该继续
所以我需要一些东西来比较输入值和集合中的数据
这是我的js文件,也许其中有一些好东西;)
Template.Invite.onCreated(function() {
this.subscribe('invites');
});
Template.Invite.events({
'submit .Invite'(event) {
event.preventDefault();
var Invite = event.target.Invite.value;
}
});
Template.Invite.helpers({
results: function(){
return Invites.find({
code: Session.get('Invite'),
if (Invite = Invite)
{
FlowRouter.go('/');
}
});
}
});
我在main.js的发布部分
Meteor.publish("invites", function() {
return Invites.find();
})
和不重要的html
<template name="Invite">
<form class="Invite" >
<input type="text" name="Invite" placeholder="Invite Code" />
<input type="submit" value="Bestätigen" />
</form>
</template>
Invite Collection中的插入已经有效但不是查找和比较
感谢您的时间和帮助;)
答案 0 :(得分:3)
我已经创建了几次邀请系统,这就是我做的方式。
当用户发送邀请时,您可以在邀请集中创建一个新文档,如下所示:
=MOD(A1,1)>0
然后,当用户尝试注册时,您需要调用一个方法来抓取他们的邀请代码并将其与数据库中的代码进行比较
import { Random } from 'meteor/random';
const code = Random.hexString(16);
invitation = {
'code': code,
'sentTo': 'user@website.com',
'accepted': false,
}
为了使您的邀请系统更加出色,当您发送邀请电子邮件时,您可以将邀请代码作为URL中的参数传递。然后,当用户单击邀请链接时,您可以从URL中获取代码并自动将其放入注册表单中。这可以防止他们复制/粘贴时出错!