天天看點

前端開發人員如何搭建資料庫

問題:我怎麼才能收到你們公衆号平台的推送文章呢?

前端開發人員如何搭建資料庫

最近有人問我,前端開發人員要存儲使用者資料,最簡單的方法是什麼。現在僅關于這部分,我來說明下怎麼做。

搭建資料庫

首先,要實際擁有一個資料庫。可以去mlab網站找一個免費的。注冊好後,在MongoDB部署(Deployments)欄裡點選建立新資料庫(create new)。建立出來的這個沙盒資料庫是不用錢的,是以就用這個。

建立資料庫後,要建一個帳戶,這樣就能驗證自己的身份。點選資料庫的名字,然後點使用者(users),再點添加資料庫使用者(add database user)。把選用的使用者名和密碼寫下來,之後要用。

在資料庫頁面頂端,應該可以看到MongoDB的位址。這是資料庫的頁面位址,就像一個網頁位址一樣。按慣例,MongoDB位址格式如下:

比如,我的資料庫是:

搭建伺服器

伺服器背景我們要用Node平台。想跳過搭建過程的話,可以克隆我在Glitch上的項目,點選這裡

看一下我寫的啟動檔案:

先導入庫,這個庫用來處理發送到伺服器的請求。

跨域請求是從一個域内的網站發送到另一個域内的伺服器去的請求,要用來允許之種請求。這一句自動解析請求,轉成JSON。

更準确地說,“打開頁面”的意思就是用方法把一個請求發送到伺服器。不同的Http方法其實隻是不同類型的請求發送到伺服器而已。我們隻用下面幾種方法:

方法用來從伺服器擷取資源。比如,打開Facebook頁面時要加載必需的HTML,CSS和JavaScript資源。

方法用來在伺服器上建立資源。比如,在Facebook上發貼,貼子裡寫的資訊就是通過請求發送到Facebook伺服器上去的。

方法用來在伺服器上更新資源。比如,編輯一個貼子時,編輯的内容就通過請求發送到Facebook伺服器上去。

函數、函數跟函數原理完全相同。當然,這兩個函數處理的不是GET方法,而是POST和PUT方法,非常合理。

路徑

伺服器開發時,需要做一些測試。運作HTTP請求可以用這個網站REST test test,很友善。或者也可以用Insomnia程式。

要檢視這個Glitch網站程式的位址,點選顯示(show)按鈕。

目前為止,我們都隻用了路徑。但我們要的是把不同使用者的資訊存儲起來,是以需要為每個使用者設定一個不同的路徑。 比如:和路徑。

那麼就産生了一個問題:不可能把所有的路徑一個個都編寫出來,這種方法擴充性太差。我們需要的是路徑參數(route parameters),這樣隻要寫一個路徑:即可。

這裡面的冒号告訴Express庫要捕捉任何開始字元為,并且接下來隻由數字字母組成的路徑。

舉些例子:

要捕捉

要捕捉

不捕捉

然後,的值可以在變量裡取得。

現在,所有帶使用者名的查詢請求,伺服器都能夠以使用者名回應了。

為資料庫加入資料

我們知道使用者是誰了,現在要把使用者資訊存儲起來。

查詢資料庫,我們會用庫。可以用下面兩種方法之一安裝:

如果用的是Glitch,也可以去檔案,點選添加軟體包(Add package)按鈕。

讓我們加載這個庫,然後把MongoDB位址儲存在一個變量裡:

這個位址屬于敏感資訊,因為隻要有了它就能通路資料庫了。最好把這個位址放在一個檔案裡,這樣别人就看不見了。

Glitch會自動從檔案中把這個變量加載到變量中去。

連接配接資料庫是一種異步操作,是以我們要把伺服器搭建步驟包裹在一個回調函數裡,像這樣:

資料庫以集合方式組織起來,集合中又包含了文檔,文檔基本就是JSON檔案。是以讓我們連接配接到使用者這個集合上去,第一次通路時,這個集合會自己建立。

首先,我們要處理方法的路徑,用這個方法來把一個新使用者的資料加進去。然後,我們要用方法的路徑來更新。

集合的插入方法可以給集合加入一個新文檔。在我們的例子裡,每個使用者都有一個獨立的文檔。

參數利用展開操作符将請求主體内容中的資料與從URL擷取的使用者資料合并。

結果就是文檔儲存在了集合裡。

第二個參數是一個回調函數,隻是通知使用者操作的結果。

從資料庫中擷取資料

既然伺服器上已經有了些資料,那麼我們就想要讀取資料。我們用方法來讀取。

這次,第一個參數是一個過濾器,告訴資料庫隻把符合使用者屬性的文檔發回來。

傳回到使用者的文檔是一個清單,因為理論上可能會不隻有一個文檔擁有那個使用者的屬性。要不要保證隻傳回一個,取決于我們自己。

更新資料庫的資料

最後,方法可以用來更新已經存在的使用者資料。

第一個參數是一個過濾器,就像方法裡一樣使用。

第二個參數是一個更新文檔。看這裡可以了解更多。在這個例子裡,我們告訴資料庫要把使用者傳進來的資料與已有的資料合并。

不過要小心,因為嵌套參數将被替換,而不是合并。

再見

要把這個文章當作資料庫和背景程式設計指南的話還遠不完整,不過其内容應該足以讓大家可以開始搭建資料庫,為個人項目提供一些助力。

在将來的文章裡,我可能會寫些關于身份驗證的東西。在那之前,請不要用這個資料庫存儲敏感資料。

在這裡,大家可以對這個項目進行小修小補。

來源:http://www.zcfy.cc/article/how-to-set-up-a-database-if-you-re-a-front-end-developer-4574.html