我在Meteor应用程序中使用accountsentry包。我希望能够使我们应用程序的合作伙伴能够通过链接将用户引荐给我们,例如:ourawesomeapp.com?partnerId=1234。当用户来自合作伙伴时,我希望能够将其存储在partnerId字段下的users collection中,以在用户与我们一起花钱时支付佣金。我当前正在尝试使用此方法:(请注意,此Accounts.onCreateUser()方法仅在服务器上运行)

Accounts.onCreateUser(function(options, user){
  user.partnerId = partnerId from the query string here...;
  return user;
});


我遇到的问题是将partnerId从查询字符串传递到服务器,以便在那里使用它。

最佳答案

如果将推荐的路由包用于流星iron-router,则可以访问查询字符串,如下所示:

// given the url: "/?partnerId=1234"
Router.route('/', function () {
  var partnerId = this.params.query.partnerId;
});


如果为the query string isn't available on the server,则可以选择使partnerId为URL路径而不是查询字符串:

Router.route('/partner/:_id', function () {
  var partnerId = this.params._id;
}, {where: 'server'});


iron-router guide中的更多内容。

07-27 20:08