【问题标题】:How to create a referral link in nodejs如何在nodejs中创建推荐链接
【发布时间】:2018-09-10 03:53:20
【问题描述】:

我正在尝试找出一种方法,为每个注册我的网站的用户创建一个指向我的网站的唯一推荐链接,但老实说,我真的不知道它是如何工作的,我有尝试用谷歌搜索它,但我找不到完美的答案,需要任何插件或任何解决方法。

用户模型,代码不多我不知道

var UserSchema = new mongoose.Schema({
    username: String,
    password: String,
    referralLink: String
})

UserSchema.plugin(passortLocalMongoose);
module.exports = mongoose.model("User", UserSchema ) 

用户注册

router.post("/register", function(req,res){
    var newUser = new User({username: req.body.username,referral: req.body.referral});

    User.register(newUser, req.body.password, function(error, user){
        if(error){
            console.log(error)
            req.flash("signerror", error.message)
            return res.redirect("/register")
        }
        //Do the referral link creation stuff here, don't know for sure

    }) 
})

如果有办法,如果你能帮忙,我会很高兴

【问题讨论】:

  • 你可以查看这篇文章,它可能对你有帮助itnext.io/…我把网址给你了,因为这个顶部可能需要很多讨论,我认为最好的方法是阅读全文文章然后决定它是否对您有帮助

标签: node.js express mongoose


【解决方案1】:

如何创建推荐链接?

让它成为与平台/语言无关的操作方法

  • 每次创建新用户时,为他生成唯一链接作为他的唯一推荐链接并将其存储在数据库中(为简单起见,这可能是 _id,它在 MongoDB 中是唯一的并且是自动生成的 - 在这种情况下,您不必创建另一个字段)。我们还要数一数有多少人通过此人的链接注册,设为referredCount

    推荐链接可能如下所示:/register?referrer=${_id},其中 ${_id} 是用户唯一 ID。

  • 向用户发送推荐链接,以便他可以将其传递给其他人,或者在他的/account 页面中显示 - 显而易见的步骤
  • 当有人通过此链接注册时,像往常一样创建新用户,创建成功后,从 URL 中获取 req.query.referrer,查看具有此特定 ID 的用户的 DB 并增加他的 referredCount

请注意,这只是一种实现方式,我确信可能有许多不同的策略。

【讨论】:

  • 感谢您的好主意,我想我会对如何创建链接有一点了解,不过如果您对此有新发现,别忘了提请我注意@TomaszBubala跨度>
  • 我仍然遇到问题,默认情况下我将其重定向到主页,问题是当用户点击页面中的另一个链接时,例如(关于页面),推荐链接离开了。知道如何让它在用户会话的路由中持续存在。 @TomaszBubala
  • @FillipoSniper,你可以查看我的答案。
  • 您好 Fillipo,您需要重定向到注册/注册页面,那里有您的注册表单,而不是关于我们的页面。
【解决方案2】:

从评论中解决您的问题:

您可以遵循@Tomasz 的建议,但保留推荐链接您可以使用 cookie。

Cookie 是用户访问网站时存储在其网络浏览器中的一小段数据。当客户通过会员推荐链接(即 yoursite.com/?ref=123)访问您的网站时,应用程序应存储两个主要浏览器 cookie 以跟踪推荐会员和访问。他们的名字是:

  • aff_ref - 此 cookie 存储会员的唯一 ID
  • aff_ref_visit_id - 此 cookie 存储访问 ID(访问 ID 每次使用任何推荐链接时都会递增 1,直到 cookie 过期或被删除)。

因此,您可以通过检查 cookie 来检测用户是否使用推荐链接访问网站。值得一提的是 cookie 应在整个购买或转换过程中保留在浏览器中,以跟踪正确的附属公司,以便为该附属公司生成推荐。 Cookie 还应在网站管理员指定的一段时间内保留在客户的浏览器中,或直到客户清除其 Cookie。

【讨论】:

  • 谢谢,我已经找到了一种方法来添加一个包含引荐来源网址唯一 ID 的持久 cookie,我检查了用户注册的值 :)
【解决方案3】:

在用户模式中.. 在主站点上有一个名为referral 的字段(可以是名称、数字或采用另一个用户的 Id )。创建一个按钮,该按钮将生成用户的个人推荐链接(使用 Javascript),以便该链接看起来像“your-domain.com/register?register=${user._id} ...然后在注册页面上...将有一个隐藏的输入字段...它将自动成为带有查询参数的字段... location.search 这样当用户注册时......推荐他们的人也将被注册......然后路线就像

app.post('/register',(req,res) =>{
  user.update({id:(req.query.register)},{referral:req.body.name})
...remaining registration routing ... 
})

【讨论】:

    【解决方案4】:

    我建议您为推荐创建一个表/集合。 架构可能包含:

    • userId(生成链接的用户)
    • numberOfUses(链接可以使用的次数)
    • 过期(如果您想将有效期限制在特定期间)

    MongoDB 将生成一个 _id aka referralId

    您可以修改注册端点以接受可选参数referralId

    每当有人使用推荐人时,您只需获取创建邀请链接的人的用户 ID。

    【讨论】:

      猜你喜欢
      • 2021-10-22
      • 2011-07-29
      • 1970-01-01
      • 1970-01-01
      • 2019-04-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多