iT邦幫忙

0

A14:「自學經驗」回顧

  • 分享至 

  • xImage
  •  

一、狀況;緣起

在整個學期總共遇到兩三次發生大BUG解到天亮的情況,以下一一敘述......

  • 情況一:在 A1 作業打造餐廳清單,繳交的欄位必須上傳 github 網址,然而我一直無法把本地端的東西推上 github
  • 情況二:在 week2 使用 mongoDB 和 mongoose 的時候連接也遇到大問題,那陣子最害怕看到這個 error:
MongooseError: The `uri` parameter to `openUri()` must be a string......

甚至還去察看了node_module

  • 情況三:在 A7 作業中,路由器瘋狂出錯,讀不到 new.handlebars 頁面,終端機回傳:MongooseError [CastError]: Cast to ObjectId failed for value "new" at path "_id" for model "Restaurant".....

二、第一次出手與失敗

  • 情況一:後來才發現問題出在我之前有一次懶得重新推,所以直接在github上做修改,結果就造成遠端和本地端衝突,然後又不知道按到什麼鍵,整個檔案回復到最開始 git commit 的版本,只好摸摸鼻子重新寫(此時的我已經對git充滿敬畏,不敢再亂做其他操作)
  • 情況二:查閱了 stackoverflow 然而完全沒用,對著 error 崩潰
  • 情況三:一一比對了教案試圖釐清問題出在哪,我有哪一點沒跟教案一樣?但一樣未果。

三、定義問題

  • 情況一:對 git 太不熟悉了,所以這也是我後來開始寫 git 版控流程問題筆記的緣起之一。 git 實在懾人心魄。
  • 情況二:絕對是 mongoose 的問題(畢竟報錯都自己寫了),但此時我也才剛接觸 mongoose,就算知道問題在 mongoose,也只能迷失在茫茫文法海中,只能推測是資料庫網址問題
  • 情況三:覺得是 mongoose 的問題,但「value "new" at path "id"」又讓我覺得應該跟 new.handlebars 這個頁面有關

四、尋找與嘗試

三個問題都先找了 google 和 stackoverflow,再來一一跟教案進行相比有哪裡不同的地方。

五、掌握關鍵,撥雲見月

  • 情況一:因為我後來直接重新寫了,然後也發現如果本地端跟遠端版本不同的話一定要先 git pull 把遠端的東西抓下來更新!main 主支才不會瘋狂衝突!
    這時我也學乖了,在重新 git 的過程中我用 google sheet 寫了流程筆記,避免未來的自己再忘記:Git 版控流程
  • 情況二:情況很蠢,反覆比對教案多次之後,我瞇起眼睛,終於發現 mongoDB_URI 最後一個字母好像是「I」(i) 而不是「l」(L) 所以我完全打錯,難怪會報錯
    這次之後也因為資料庫的執行過程實在太多小細節,所以也在 git 版控流程的旁邊寫上建立新專案的步驟,方便自己查閱而且不會忘記。啟動新專案流程
  • 情況三:這個問題是唯一我卡到沒有自己解決了,後來問了助教才知道是路由器擺放順序問題,只要把 new 頁面的router 移到 show 頁面的 router 上方就可以了。

六、回顧與發現

我覺得重點在於細心,以及搞清楚變數和路由器傳入的順序和步驟,這些東西在腦中清楚理順過,代碼才不會一直報錯。

七、分享與展望

唯一推薦 chatGPT,到後期太多問題是 stackoverflow 無法解決的了,所以後來我都直接問 GPT,如果 GPT 也無法解決才會問助教。
mongoose 的語法官方文件也要看過,很多語法用法寫在裡面!


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言