Objective
本周目標為順利完成資料庫的串接與運用路來熟悉資料庫CRUD的功能,同時再次複習除了連線資料庫以外,建立一個Express專案所需要的基本流程,包含從使用npm init -y初始化專案、安裝express、建立handlebars、到最後新增.gitignore檔案,將專案於本機進行版本控制。
Reflective
這周先利用密碼產生器讓我再熟悉一次express專案建立的流程,並學習如何透過<form>建立表單輸入的各種要求,在這階段與之前較大的差異是加上了POST這個http方法,由於透過GET來建立request時,會將傳送的資料顯示在網址列上,而一般我們在輸入input可能會有密碼、生日等個資,所以通常會改用POST這個方法。而值得注意的是,最後則要再注意使用POST請求,要解析待資料的req.body物件時,應該要使用body-parser這個套件,來處理表單前端所送出的資料。
此外,這周第二個重點則是透過To-do list清單來練習使用文件式資料庫。我們使用的文件式資料庫為MongoDB,然後透過JavaScript 撰寫Mongoose提供的語法,將其翻為可以操作資料庫的語法。其用到的CRUD操作有如下:
- 透過.find()瀏覽所有資料
- 透過.create()新增資料
- 透過.findById()與params取得特定清單
- 透過.findById()與.save()修改特定清單
- 透過.findById()與.remove()刪除特定清單
最後教材會再透過流程圖顯示MVC架構各元件的溝通,也讓我可以更清楚再使用不同HTTP 方法與路由後會到輸出哪個樣板的畫面,比較特別的是,這次階段的學習也真正開始操作資料庫,也算是慢慢對網頁工程師整體的會用運的技術與架設網頁的流程有了最基本的認識。
Interpretive
踏入串接資料庫的步驟雖讓我自己覺得往成為工程師更靠近的一步,但其實第一步在連線資料庫的時候就遇到許多困難,因為抓不到環境變數一直無法找到鄭去的URI,對於這種不是因為程式邏輯上的挫折確實後來帶給我些學習上的阻力,覺得為什麼要花這麼多時間研究一個好像與自己技術能力沒什麼大多關聯的事物,且網路上的解決方式也跟教材預設差異較大,最後還是無法設定環境變數,而是直接在mongoose.connect()帶入原先取得的URI資訊,這是之後還需要修改的地方。
Decisional
第二周較有困難的學習在於環境變數的設定與MVC架構裡面controller、view、model之間的溝通,發現如果全部遮起來,就比較難透過自己的話說出修改前端畫面資料到寫入後端資料庫所經過的所有流程,覺得之後應該要花更多時間在於思考各元件之間是如何做串接,才會對在app.js輸入路由的各個動作與整體專案何時要新增partial template、哪個handlebars要更改架構、到整體專案接到請求到送出回應的流程更為熟悉。