Web应用程序的最佳方法/设计?

时间:2017-08-13 21:08:30

标签: javascript node.js

我一直在Udemy上学过Node.js课程,并希望运用我所获得的一些知识来创建一个简单的Web应用程序。我想有一个用户注册,这导致他进入管理面板,这部分我已经有了。

然后,此用户(请求者)可以使用唯一链接将用户(被邀请者)引荐到此网站。例如,他会单击一个按钮来生成一个唯一的超链接(我对此链接的想法是发送链接的请求者的http://websiteurl/userid。)

然后,请求者可以通过电子邮件将此链接发送给他们的朋友,邀请他们访问网站,一旦他们点击链接将他们带到注册表单,当他们填写表格时,他们就会被链接(添加到数组中)在原始用户下)。

如何设置此“会话”,以确保被邀请者填写的表单是否与原始请求者相关联?如何在请求者的超链接上动态生成这些表单?

我不是在寻找确切的代码来执行此操作,而是验证我的网址是一个好方法,还是我应该考虑其他方法。

提前致谢!

1 个答案:

答案 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更新参数中用户标识的数据库条目。用户。