2017-08-13 86 views
-5

我一直在Udemy上学习Node.js课程,并想申请一些我已经获得的知识来创建一个简单的Web应用程序。我想有一个用户注册,这导致他到一个管理面板,这一部分我已经有了。Web应用程序的最佳方法/设计?

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

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

我该如何设置这个“会话”,如确保被邀请者填写的表单链接到原始请求者?如何在请求者的超链接上动态生成这些表单?

我不是在寻找确切的代码来做到这一点,而是验证如果我的想法是一个好方法,或者如果有其他方法我应该考虑。

在此先感谢!

+0

你可以发布你写的代码到目前为止吗? – styfle

+0

难道你不能只使用数据库将推介URL关联到特定的用户帐户吗?然后,您可以记录链接访问的次数,并增加与该用户关联的计数器。 –

+0

@ObsidianAge我可以存储原始请求者的URL,但是如何动态地为特定请求者的URL生成注册表单?那是我能做的事吗?由于我不知道如何为每个请求者的唯一URL生成该表单,因此我无法真正包裹这部分内容。我有网址,但我不知道如何通过点击一个按钮来生成表单/网页。 – user2573690

回答

0

那么,这将需要您更改数据库的架构。用户需要具有以下属性:

{ 
    referred: [] 
} 

被引用的数组应包含ids或某种对用户引用用户的引用。

在“/:userid”路径上,表单应提交到创建新用户的路由,并且具有带用户标识的参数。在这种情况下,我使用查询参数。

因此,如果一个人访问/foo,他们会得到一个表格,可以发布到像/new?userid=foo这样的URL。

在这条路线,你可以做这样的事情(假设快递):

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,并且在创建新用户时,如果此参数存在,则可以使用新用户的标识更新参数中用户标识的数据库条目。

相关问题