2017-08-13 105 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,並且在創建新用戶時,如果此參數存在,則可以使用新用戶的標識更新參數中用戶標識的數據庫條目。

相關問題