我正在尝试为我的项目添加一个推荐系统,因此目前我正在将其建立在this package之外。我遇到的问题是我的项目只使用accounts-google而不是帐户密码。该软件包的工作方式是通过preSignUpHook为referrerCode(/register?r=ReferralCodeHere
)添加铁路由器query parameters。我相信这只适用于帐户密码不会工作时创建一个API的帐户,如accounts-google。如何在服务器钩子中获取铁路由器查询参数
我解决这个想法是使用一个Meteor.users.before.insert
钩抓住铁路由器查询参数和因为我已经使用Meteor Collection Hooks的一对夫妇的其他东西把它们插入到我referrerCode
领域Meteor.users。
的问题是我还没有能够找到一种方式来获得服务器上的查询参数,我希望做这样的事情:
Meteor.users.before.insert(function(userId, doc) {
doc.referrerCode = Referrer._referrerCode; // Link 1
});
(Link 1)
但这会只是未定义而已。
如果我在我的注册页面,它有这样的查询,例如:example.com/register?r=12345
然后我运行Router.current().params.query.r
在客户端它返回12345
。基本上我只需要将这些保存到Meteor.users中的referralCode字段,当新用户创建帐户时,如果引用代码存在于注册URL中。
我对这个有点失落。我想过把它设置为一个Session变量,然后在.insert挂钩中获取它,但是这只能在客户端工作。我想流星法可能是最好的,但我不完全确定如何构造它。任何帮助是极大的赞赏!