如何在nodejs中创建引用链接

时间:2018-03-31 08:15:02

标签: node.js express mongoose

我试图想出一种方法来创建一个独特的引荐链接,该链接指向我注册网站的每个用户访问我的网站,但是要真诚地知道它是如何确定的,我已经尝试使用谷歌搜索,但我无法找到它的完美答案,任何需要的插件或任何方式。

用户模型,没有太多代码我不知道这个

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

    }) 
})

如果有办法解决这个问题,如果你帮忙的话,会很高兴

4 个答案:

答案 0 :(得分:2)

如何创建推荐链接?

让这个与平台/语言无关 how-to

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

    引荐链接可能代表如下示例:/register?referrer=${_id},其中$ {_ id}是用户唯一ID。

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

请注意,这只是一种方法,我相信可能会有很多不同的策略。

答案 1 :(得分:0)

要通过评论解决您的问题,

您可以按照@Tomasz的建议进行操作,但要保留推荐链接,可以使用cookie。

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

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

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

答案 2 :(得分:0)

在用户模式中的

..在主站点上有一个名为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 ... 
})

答案 3 :(得分:0)

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

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

MongoDB将生成一个_id aka referralId

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

只要有人使用推荐,您就可以获取创建邀请链接的人的用户ID。