前面幾天進度緩慢的把前端內容做了一些出來,但實在覺得沒有後端資料的內容,開發起來還是不太順暢。
就以往的開發經驗來說,如果是像開發一些前端互動內容性質重的,在後端 API 還沒開出來前,還能用 json-server 或自己先靜態弄個 json 檔當作假資料勉強能繼續開發前端功能。
但像這個記帳程式比較偏後台類的要做很多 CRUD 的網頁,還是要先從後端開始做比較順,於是今天就先來 survey 這個專案的後端系統要怎麼做吧!
最初的想法是資料庫用 MySQL,而 API 的部分用 Node.js/Express 開出接口給前端用。
以前專案經驗的做法是另外開一個 API 專案,達到前後端分離。
但突然想到若是前端用 Vue,後端要用 Node.js/Express 這個狀況,有沒有可能可以用 Nuxt.js 直接搞定,畢竟 Nuxt.js 本身就有自架一個 Node.js server。
但印象中 Nuxt.js 是為了解決 SSR 的問題才要用的,會有人把 API 內容放在 Nuxt.js 的 server 端,然後直接接資料庫嗎?
查了一下找到去年鐵人賽有人專寫 Nuxt.js 介紹的系列文,有一篇提到類似的部分 —— 32. Nuxt 整合 API 服務。雖然仔細看起來講的不是同一件事,文章內容主要是要解決 API server 的跨域請求問題,或許是我誤會 Nuxt.js 的用法了,不過還是筆記一下。
另外也找到一個 Github 專案 —— nuxt-vuetify-express-mysql,有人用 Nuxt.js 直接串 MySQL,所以這個想法是可行的,可以考慮。
在找 Nuxt.js 相關資訊時搜到去年一個也使用 Nuxt.js 的系列文章 —— 用 Nuxt.js 2.0, Vuetify, Storybook, Firebase 建一個 Blog,看這標題突然對 Firebase 有點好奇,一直有聽過但都沒深入了解。
另外查了這篇 —— Day26 前端福音(1/4): Firebase-介紹 & 建立專案,節錄文章中一段:
為什麼會說 Firebase 是前端開發者的福音呢?
在開發前端過程中,總免不了需要使用到後端,像是使用資料庫,儲存使用者和產品的資料,因為不可能前端把所有資料存在 Cookie、localStorage、又或者需要處理權限驗證等等。
但是有時候開發項目沒有那麼複雜,我只是單純需要把資料存到資料庫而已,還需要大費周章來架 Server、建 DB、寫 API,等到回來開發前端,都不知道是多久以後了,更別提開發過程中 Server 出現問題或是 API 邏輯錯誤...等等突發狀況。
...
別緊張,這個狀況不會發生,至少在你學會 Firebase 的 Realtime Database 後XD
看完覺得好吸引人,好像可以來實際玩玩 Firebase 可以做什麼,今天先到這,明天的主題就決定是這個了!
接下來幾天的文章主題,會來寫幾篇關於 Firebase Cloud Firestore 的入門筆記,暫時會與記帳程式無關。其實原本當初寫這個主題的原因就是想學一些後端的內容,所以前端畫面及功能可能有部分會留到鐵人賽之後繼續做了!
…,有沒有可能可以用 Nuxt.js 直接搞定,畢竟 Nuxt.js 本身就有自架一個 Node.js server。
可以喔
在 nuxt.config.js 的 serverMiddleWare 裡面設定
連到一個 express,可以在裡面開 api
https://www.youtube.com/watch?v=eSM_YkWeS7k
不過 nuxt-vuetify-express-mysql 這個專案的處理方式也滿有趣的,沒想過可以這樣處理