iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 13
1
Modern Web

從零開始的個人化記帳程式開發系列 第 13

記帳程式 (13):所以我說那個 API 呢?

  • 分享至 

  • xImage
  •  

前言

前面幾天進度緩慢的把前端內容做了一些出來,但實在覺得沒有後端資料的內容,開發起來還是不太順暢。

就以往的開發經驗來說,如果是像開發一些前端互動內容性質重的,在後端 API 還沒開出來前,還能用 json-server 或自己先靜態弄個 json 檔當作假資料勉強能繼續開發前端功能。

但像這個記帳程式比較偏後台類的要做很多 CRUD 的網頁,還是要先從後端開始做比較順,於是今天就先來 survey 這個專案的後端系統要怎麼做吧!

後端系統技術選擇

Node.js/Express 與 MySQL

最初的想法是資料庫用 MySQL,而 API 的部分用 Node.js/Express 開出接口給前端用。

以前專案經驗的做法是另外開一個 API 專案,達到前後端分離。

Nuxt.js 與 MySQL

但突然想到若是前端用 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,所以這個想法是可行的,可以考慮。

Firebase RealTime Database

在找 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 的入門筆記,暫時會與記帳程式無關。其實原本當初寫這個主題的原因就是想學一些後端的內容,所以前端畫面及功能可能有部分會留到鐵人賽之後繼續做了!


上一篇
記帳程式 (12):關於網站中共用 dialog 的資料流處理
下一篇
Firebase 是什麼&與 GCP 的差別
系列文
從零開始的個人化記帳程式開發30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

0
ayugioh2003
iT邦新手 1 級 ‧ 2021-07-01 01:44:33

…,有沒有可能可以用 Nuxt.js 直接搞定,畢竟 Nuxt.js 本身就有自架一個 Node.js server。

可以喔
在 nuxt.config.js 的 serverMiddleWare 裡面設定
連到一個 express,可以在裡面開 api

Yes
https://www.youtube.com/watch?v=eSM_YkWeS7k

不過 nuxt-vuetify-express-mysql 這個專案的處理方式也滿有趣的,沒想過可以這樣處理

【**此則訊息已被站方移除**】

我要留言

立即登入留言