【Next.js】實作Issue Tracker Project

閱讀時間約 3 分鐘

前言

趁著過年這段集中的時間,好好的從頭到尾跟完Mosh Hamedani的Next.js課程。實作Issue tracker的項目在Part 2,進入實作之前,已經先順過一輪Part 1的理論內容,最後成品算是勉強跟完了70%左右的內容,花了3~4個半天的時間,一邊照教學影片作業,一邊看文件研究吸收,畢竟本來就是做前後端都碰的工作,底層概念上尚且需要花點時間轉換跟熟悉。


綜覽

架構示意圖

架構示意圖

首先,Next.js是一個基於React.js的全端框架,而React.js是一個前端的函式庫。

基本上頁面是由各個react component(組件)所組成,和純前端的react差異在於預設所有的組件都是在後端渲染,即SSR(Server-Side Rendering 伺服器端渲染),需要畫面元件動態互動的話,要在組件頂端多加上use client,組件就會改以CSR(Client-Side Rendering)處理。


預設的路由會以專案資料夾的階層進行查找,資料夾為該頁面命名,頁面的呈現需要一個page.tsx做處理(用的是TypeScript)。如果網址列請求需要查詢參數,則須建立一層資料夾命名在中括號中,例如[id]代表使用id作為查詢參數。


而要建立api而不是頁面的話,資料夾內建立route.ts的檔案,裡面實作GET、POST、PUT、DELETE等邏輯,就可以完成了。


專案綜覽

專案綜覽


資料庫方面使用MySQL,以Prisma進行ORM(Object Relational Mapping)的對應處理。這裡原本懶得另外安裝圖形化介面工具,只透過安裝時一併加入的Command Line Client進行處理,為了效率最後找了vscode內的插件(Database Client JDBC)幫助開發。

資料表

資料表


API測試方面,還是用我使用上順手的thunderClient。

raw-image


成果

進入頁面進行google帳號登入後,可看到現有的議題,沒登入的話僅能進行檢視。

raw-image


點擊議題連結,可個別編輯內容或刪除

刪除

刪除


可將議題更換指派的人員

指派人員

指派人員


編輯議題,透過SimpleMDE跟react-markdown,進行編輯跟呈現markdown撰寫的內容

編輯頁面

編輯頁面

總結

雖然沒有跟完全部內容,主要想從中學習的大方向也都有碰到,例如:

  1. 從零開始建立起一個產品等級的應用程式
  2. 重構技巧
  3. 專案架構分層
  4. 新增/刪除/查詢/修改、session及異常處理
  5. 授權認證機制(GCP、OAuth2.0)
  6. git commit點的顆粒度切分
  7. 手機/平板顯示結果,以及使用devtool進行問題除錯
  8. 自行看官網文件找使用方式跟問題處理
  9. cache機制及衍生問題
    - Data cache
    - Full route cache (cache on the server)
    - Router cache client-side cache)


後面的圖表、Vercel佈署上正式、sentry進行監控追蹤等,暫時還沒時間研究
至少在這短短幾天的精神時光屋中,學會不少維護性的設計考量。


12會員
62內容數
遇到的坑、解過的題、新知識的探索、舊時代的遺毒!? 工作後我發現,文件更新往往跟不上新需求的更迭,犯錯的歷史總是不斷重演。因此,我改變了方式,蒐集從程式上、系統上的每一次異常處理過程,好讓再次遇到相同的問題時能快速應變。此專題就是我的錯題本,期待日後不管在工作上或交流上遇到難題,都能輕鬆地應答:有什麼難的,我都踩過。
留言0
查看全部
發表第一個留言支持創作者!
Err500 的其他內容
巨集(Macro)是什麼? 第一次聽到這個詞是出現在excel,按下錄製鍵後,畫面上進行的操作會被記錄下來,可以重複回放執行前述操作。之後接觸C語言的#define,巨集又跟函數類似...
專案產生大量又瑣碎的作業做處理,眼下要從iReport的設定檔(jrxml)擷取每一項套印參數出來,提供給別人做Excel公式的資料表進行作業。
htmx前陣子還只是網路迷因,近期拿來搭配go的系列影片越來越多了,兩者都可以用很少量的程式實作出功能,很適合拿來做些簡單的project。
作為程式開發人員,一路從Notepad++、VSCode、Eclipse,或多或少都有機會聽過vim,只為了追求極致的開發效率。看看國外直播主ThePrimeagen邊寫程式邊直播,行雲流水的編輯速度,我覺得...我的問題是出在英打。
相信很多初學者學python的原因,不外乎語法簡單、好上手、重點是有很多現成的套件可以玩。那麼,Java呢?有!當然有!而且還多到你不知道該選哪個好! 今天的文章主要示範如何在vscode新建立Java 的maven專案,並且透過maven安裝這些額外的套件(依賴)
最近配合公司政策換了新電腦,重新回想起從頭建環境的惡夢。本篇文就來記錄一下如何開始踏入Java的第一步,方便起見也使用相對Eclipse、IntelliJ來說輕量不少的VScode作為編輯器。
巨集(Macro)是什麼? 第一次聽到這個詞是出現在excel,按下錄製鍵後,畫面上進行的操作會被記錄下來,可以重複回放執行前述操作。之後接觸C語言的#define,巨集又跟函數類似...
專案產生大量又瑣碎的作業做處理,眼下要從iReport的設定檔(jrxml)擷取每一項套印參數出來,提供給別人做Excel公式的資料表進行作業。
htmx前陣子還只是網路迷因,近期拿來搭配go的系列影片越來越多了,兩者都可以用很少量的程式實作出功能,很適合拿來做些簡單的project。
作為程式開發人員,一路從Notepad++、VSCode、Eclipse,或多或少都有機會聽過vim,只為了追求極致的開發效率。看看國外直播主ThePrimeagen邊寫程式邊直播,行雲流水的編輯速度,我覺得...我的問題是出在英打。
相信很多初學者學python的原因,不外乎語法簡單、好上手、重點是有很多現成的套件可以玩。那麼,Java呢?有!當然有!而且還多到你不知道該選哪個好! 今天的文章主要示範如何在vscode新建立Java 的maven專案,並且透過maven安裝這些額外的套件(依賴)
最近配合公司政策換了新電腦,重新回想起從頭建環境的惡夢。本篇文就來記錄一下如何開始踏入Java的第一步,方便起見也使用相對Eclipse、IntelliJ來說輕量不少的VScode作為編輯器。
你可能也想看
Google News 追蹤
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
美國總統大選只剩下三天, 我們觀察一整週民調與金融市場的變化(包含賭局), 到本週五下午3:00前為止, 誰是美國總統幾乎大概可以猜到60-70%的機率, 本篇文章就是以大選結局為主軸來討論近期甚至到未來四年美股可能的改變
Thumbnail
Faker昨天真的太扯了,中國主播王多多點評的話更是精妙,分享給各位 王多多的點評 「Faker是我們的處境,他是LPL永遠繞不開的一個人和話題,所以我們特別渴望在決賽跟他相遇,去直面我們的處境。 我們曾經稱他為最高的山,最長的河,以為山海就是盡頭,可是Faker用他28歲的年齡...
Thumbnail
當你做好你的網站後,教大家把你的網站部署到雲端伺服器Vercel
Thumbnail
這集介紹Next Image Module模組和CSS3如何定位在Next.js Framework
Thumbnail
Next.js 架構是怎麼構成的呢?這次教學視頻和文章來帶大家了解_app.js or layout.js
Thumbnail
當你有客製化的字型在Google Font裡面,但是又不知道如何導入到Next.js嗎? 這一集教大家如何從Google Font導入Next.js和做一個導覽列
Thumbnail
這集跟大家初步介紹Next.js和如何安裝與設置最後製作一個作品集(Portfolio) 如果對設計有興趣的朋友們可以看以下連結文章來學習Figma設計軟件 https://vocus.cc/article/645c733dfd89780001ffe890
Thumbnail
1. 安裝node.js 2. 建立專案: 接著會詢問一些初始化設定的東西,按照需求選擇即可: 3. 執行 打開http://localhost:3000/ 即可看到畫面。 pages Nuxt.js會自動配置pages中每一個.vue檔案的route。 假設在pages資料夾下新增一個如下內容的a
Thumbnail
說是開發過程的筆記,應該是撞牆心血錄,因為各式各樣的原因,所以為前後端串接困擾了很久⋯⋯
Thumbnail
安裝設置: 安裝完成後,專案目錄結構如下: 執行$ npm run dev 可直接透過http://localhost:3000進入首頁,對應到pages/index.js。 Prod記得每次要先build再start: Example: SSG: 透過外部api取得資料建立靜態頁面 結論:
現在您已經安裝了 WooCommerce 的 WordPress 網站,是時候配置 WooCommerce 並開始添加一些要銷售的產品了! 配置 WooCommerce 設置 在您的 WordPress 站點中,單擊 WooCommerce 菜單選項並轉到Settings。在設置頁面中,將在不同選項
Thumbnail
好久沒看這麼讓人舒心的實境秀了,服裝設計師們的比拚真是讓人眼花撩亂讚嘆不已。沒有太多不必要、讓人頭疼的Drama要素,大部分的設計師專注於作品上而且相處和睦愉快,互相欣賞,情誼真摯,讓人感動。 一開始兩兩一組對一個創作者來說是一大挑戰,溝通與妥協似乎本質上和藝術有所偏差,看著他們合作有的順利有的不斷
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
美國總統大選只剩下三天, 我們觀察一整週民調與金融市場的變化(包含賭局), 到本週五下午3:00前為止, 誰是美國總統幾乎大概可以猜到60-70%的機率, 本篇文章就是以大選結局為主軸來討論近期甚至到未來四年美股可能的改變
Thumbnail
Faker昨天真的太扯了,中國主播王多多點評的話更是精妙,分享給各位 王多多的點評 「Faker是我們的處境,他是LPL永遠繞不開的一個人和話題,所以我們特別渴望在決賽跟他相遇,去直面我們的處境。 我們曾經稱他為最高的山,最長的河,以為山海就是盡頭,可是Faker用他28歲的年齡...
Thumbnail
當你做好你的網站後,教大家把你的網站部署到雲端伺服器Vercel
Thumbnail
這集介紹Next Image Module模組和CSS3如何定位在Next.js Framework
Thumbnail
Next.js 架構是怎麼構成的呢?這次教學視頻和文章來帶大家了解_app.js or layout.js
Thumbnail
當你有客製化的字型在Google Font裡面,但是又不知道如何導入到Next.js嗎? 這一集教大家如何從Google Font導入Next.js和做一個導覽列
Thumbnail
這集跟大家初步介紹Next.js和如何安裝與設置最後製作一個作品集(Portfolio) 如果對設計有興趣的朋友們可以看以下連結文章來學習Figma設計軟件 https://vocus.cc/article/645c733dfd89780001ffe890
Thumbnail
1. 安裝node.js 2. 建立專案: 接著會詢問一些初始化設定的東西,按照需求選擇即可: 3. 執行 打開http://localhost:3000/ 即可看到畫面。 pages Nuxt.js會自動配置pages中每一個.vue檔案的route。 假設在pages資料夾下新增一個如下內容的a
Thumbnail
說是開發過程的筆記,應該是撞牆心血錄,因為各式各樣的原因,所以為前後端串接困擾了很久⋯⋯
Thumbnail
安裝設置: 安裝完成後,專案目錄結構如下: 執行$ npm run dev 可直接透過http://localhost:3000進入首頁,對應到pages/index.js。 Prod記得每次要先build再start: Example: SSG: 透過外部api取得資料建立靜態頁面 結論:
現在您已經安裝了 WooCommerce 的 WordPress 網站,是時候配置 WooCommerce 並開始添加一些要銷售的產品了! 配置 WooCommerce 設置 在您的 WordPress 站點中,單擊 WooCommerce 菜單選項並轉到Settings。在設置頁面中,將在不同選項
Thumbnail
好久沒看這麼讓人舒心的實境秀了,服裝設計師們的比拚真是讓人眼花撩亂讚嘆不已。沒有太多不必要、讓人頭疼的Drama要素,大部分的設計師專注於作品上而且相處和睦愉快,互相欣賞,情誼真摯,讓人感動。 一開始兩兩一組對一個創作者來說是一大挑戰,溝通與妥協似乎本質上和藝術有所偏差,看著他們合作有的順利有的不斷