在構建我的在線課程平台時,我遇到了生成數千個唯一URL的問題。

每個參與課程的人都會被分配一個唯一的URL。後端知道所有這些URL並將有效的URL映射到課程內容上。

我希望有一個唯一的URL,因為我可以將URL關聯到購買郵件。

這樣,我就可以避免使用登錄功能,同時讓每個人都有一個單獨的URL,以便在URL意外或故意被公開分享時,我可以阻止濫用。

於是我開始寫我的Node.js腳本。

我使用了randomstring這個包,並將數字添加到Set對象中,直到我得到想要的數量。使用Set意味著每個字符串都是唯一的,因為調用add並傳遞重複的字符串不會產生任何效果。

我創建了一個名為generateStrings()的函數來返回這個Set:

const generateStrings = (numberOfStrings, stringLength) => {
 const randomstring = require('randomstring')
 const s = new Set()

 while (s.size < numberOfStrings) {
 s.add(randomstring.generate(stringLength))
 }

 return s
}

可以這樣調用它:

const strings = generateStrings(100, 20)

其中100是我想要的字符串數量,20是每個字符串的長度。

一旦我們獲得了這個Set,我們可以使用values()Set方法來遍歷它們:

for (const value of strings.values()) {
 console.log(value)
}