我一直在Udemy上学过Node.js课程,并希望运用我所获得的一些知识来创建一个简单的Web应用程序。我想有一个用户注册,这导致他进入管理面板,这部分我已经有了。
然后,此用户(请求者)可以使用唯一链接将用户(被邀请者)引荐到此网站。例如,他会单击一个按钮来生成一个唯一的超链接(我对此链接的想法是发送链接的请求者的http://websiteurl/userid。)
然后,请求者可以通过电子邮件将此链接发送给他们的朋友,邀请他们访问网站,一旦他们点击链接将他们带到注册表单,当他们填写表格时,他们就会被链接(添加到数组中)在原始用户下)。如何设置此“会话”,以确保被邀请者填写的表单是否与原始请求者相关联?如何在请求者的超链接上动态生成这些表单?
我不是在寻找确切的代码来执行此操作,而是验证我的网址是一个好方法,还是我应该考虑其他方法。
提前致谢!
答案 0 :(得分:0)
嗯,这需要您更改数据库的架构。用户需要具有以下属性:
{
referred: []
}
引用的数组应该包含id或对用户引用的用户的某种引用。
在" /:userid"路由,表单应提交到创建新用户的路由,并具有带有用户ID的参数。在这种情况下,我使用的是查询参数。
因此,如果某人要访问/foo
,他们会收到一个表单,该表单会发布到/new?userid=foo
这样的网址。
在那条路线中,你可以这样做(假设是Express):
app.post("/new", (req, res) => {
const userID = req.query.userid;
const newUser = // create user normally
if(userID) {
// `userID` referred this user
const referrer = getUser(userID);
referrer.referred.push(newUser);
save(referrer);
}
});
getUser
函数应返回当前用户,您应该使用新用户修改referred
属性。此代码仅仅是一个大纲,您应该更新数据库中的用户。
简而言之,表单应该发布到/new?userid=foo
,并且在创建新用户时,如果存在此参数,则可以使用新的id更新参数中用户标识的数据库条目。用户。