Node.js + MongoDB建立最愛球員清單

閱讀時間約 3 分鐘

※ 專案起源

建立一個屬於自己喜愛球員的清單。

※ 成果發表


raw-image
raw-image
raw-image


※ 專案開發環境

  1. 架設 Node.js 伺服器。

原因:為了讓我所使用的程式語言JavaScript ,擁有能夠開發網路應用程式的能力,所以我用Node.js 來架設伺服器。

優點:

  • 有了 Node.js,JavaScript 可以直接建立、讀取、修改和刪除電腦內的檔案,並且能和資料庫連通。
  • Node.js具有網路應用程式需要的功能,例如作為伺服器處理用戶端發出請(request) 並給予回應 (response) 等。
  1. 用 Express.js 進行全端開發。

原因:Express 提供了一個強大的路由系統、豐富的內建中間件、使用模板引擎來動態生成 HTML等優點,讓程式碼更簡潔,開發速度更快速。

優點: 有了「網路框架」 (web framework) 讓我能夠分割負責不同功能的程式碼,以增加每一份檔案的易讀性,也讓程式碼更容易被維護。

  1. 用 MongoDB 資料庫。

原因:

  • 現階段使用者最多、生態系也最完整的文件資料庫。
  • 用 Express.js 開發應用程式時,會希望能直接用 JavaScript 操作資料庫,而不需要另外撰寫 SQL。

※ 專案開發技術

  • 使用 Express handlebars,為球員清單做出佈局和局部樣板的畫面。
  •  套入 Bootstrap在球員清單 的 HTML。
  • 將Handlebars 的語法跟原有的 HTML 語法與格式配合,顯示動態資料:圖片連結 - player.image 是放在 src = "{{this.images.index}} " 裡面
  • 在 handlebars 樣板中使用 each 迴圈,呈現多筆球員資料。
  • 讀取 JSON 檔案 ,將外部資料帶入樣板引擎中,讓網頁呈現出 50位球員資料。
  • 使用 :params 來取得網址資訊的路由,建立動態路由讓使用者可以在瀏覽器畫面上看到自己在網址列所輸入的內容。
  • 透過 req.query 取得網址 ? 後方的查詢字串(queryString)
  • 運用CRUD 功能,呈現瀏覽所有或特定球員資料,新增、修改和刪除球員資料。
  • 依照RESTful 風格優化路由設計。
  • 設定 express-session,來判斷使用者的登入狀態。
  • 設定 Passport.js,完成登入功能。
  • 運用middleware驗證登入狀態。
  • 使用 connect-flash 來建立快閃訊息 (flash message),作為提示使用者。
  • 使用 bcrypt 處理密碼,讓使用者在登入和註冊時輸入的密碼。
  • 整合 Facebook 第三方登入。
  • Promise.all 語法結構重構種子資料 。

※ 專案功能

使用者可以在首頁看到所有球員的簡單資料:

1. 球員照片

2. 球員名稱

3. 球員背號

使用者可以再點進去看球員的詳細資訊:

1. 英文名字

2. 職位名稱

3. 身高

4. 體重

5. 學歷

6. 出生年月日

使用者可以透過搜尋球員名稱來找到特定的球員

使用者可以透過搜尋職位名稱來找到特定的球員

使用者可以新增一位球員

使用者可以瀏覽一位球員的詳細資訊

使用者可以瀏覽全部所有球員

使用者可以修改一位球員的資訊

使用者可以刪除一位球員

使用者可以註冊

使用者可以登入

使用者可以透過Facebook Login 直接登入

全端網頁開發專業知識分享
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
緣起 在電子廠做了18年,從助理技術員變成高級技術員。原本只是個操作機台的檢驗員,目前的工作是負責品質管理。18年來也曾動過轉職的念頭,參加國家考試的高考、地方特考,結果就是名落孫山。為了增加自己的專業能力,提高自己的履歷能被看見的機會,也自費去學習專案管理和ISO 9001:2015 品質管理系
隨著JavaScript課程的學習的最後階段, Twitter專案不只考驗平時課程所學的技能,也讓我們提前預習在職場上與人合作完成專案的經驗。
為何會選擇記帳程式做專案? 網路上有很多各種記帳方式,用Excel方式來記帳士很多人熟悉的作法。但既然我已經學習了JavaScript這個程式語言,就想試看看如何藉由程式語言寫出一個簡易的記帳程式。 技術選擇方面 選擇Node.js是因為他是一個可以讓JavaScript 執行環境;我可以直接在電腦
1.什麼是電腦: 電腦是透過程式碼的指令,經由「輸入(input)→儲存(storage)/處理(processing)→輸出(output)」的流程,完成人類需要的結果。 2. 什麼是程式?有兩種說法。 第一種說法:就是運行在電腦上的一種指令,這種說法描述了程式的特質與概念,也就是說「運行在電腦上
來到學期2-3的階段,第一個作業就是打造餐廳清單。原本認為經過電影清單的學習經歷之後,對於打造餐廳清單應該也不會太過困難;沒想到我花了2個月的時間才把作業完整交出去。 在寫餐廳清單的初期,第一個碰到的問題就是首頁無法秀出餐廳評分這個選項。我試著參考其他同學的作品也改了版面的設計,卻始終無法出現餐廳評
緣起 在電子廠做了18年,從助理技術員變成高級技術員。原本只是個操作機台的檢驗員,目前的工作是負責品質管理。18年來也曾動過轉職的念頭,參加國家考試的高考、地方特考,結果就是名落孫山。為了增加自己的專業能力,提高自己的履歷能被看見的機會,也自費去學習專案管理和ISO 9001:2015 品質管理系
隨著JavaScript課程的學習的最後階段, Twitter專案不只考驗平時課程所學的技能,也讓我們提前預習在職場上與人合作完成專案的經驗。
為何會選擇記帳程式做專案? 網路上有很多各種記帳方式,用Excel方式來記帳士很多人熟悉的作法。但既然我已經學習了JavaScript這個程式語言,就想試看看如何藉由程式語言寫出一個簡易的記帳程式。 技術選擇方面 選擇Node.js是因為他是一個可以讓JavaScript 執行環境;我可以直接在電腦
1.什麼是電腦: 電腦是透過程式碼的指令,經由「輸入(input)→儲存(storage)/處理(processing)→輸出(output)」的流程,完成人類需要的結果。 2. 什麼是程式?有兩種說法。 第一種說法:就是運行在電腦上的一種指令,這種說法描述了程式的特質與概念,也就是說「運行在電腦上
來到學期2-3的階段,第一個作業就是打造餐廳清單。原本認為經過電影清單的學習經歷之後,對於打造餐廳清單應該也不會太過困難;沒想到我花了2個月的時間才把作業完整交出去。 在寫餐廳清單的初期,第一個碰到的問題就是首頁無法秀出餐廳評分這個選項。我試著參考其他同學的作品也改了版面的設計,卻始終無法出現餐廳評
你可能也想看
Google News 追蹤
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
11/20日NVDA即將公布最新一期的財報, 今天Sell Side的分析師, 開始調高目標價, 市場的股價也開始反應, 未來一週NVDA將重新回到美股市場的焦點, 今天我們要分析NVDA Sell Side怎麼看待這次NVDA的財報預測, 以及實際上Buy Side的倉位及操作, 從
Thumbnail
Hi 大家好,我是Ethan😊 相近大家都知道保濕是皮膚保養中最基本,也是最重要的一步。無論是在畫室裡長時間對著畫布,還是在旅途中面對各種氣候變化,保持皮膚的水分平衡對我來說至關重要。保濕化妝水不僅能迅速為皮膚補水,還能提升後續保養品的吸收效率。 曾經,我的保養程序簡單到只包括清潔和隨意上乳液
教學影音: https://youtu.be/SY5sRC2idk0 ============ 安裝 Node.js 步驟 1. http://nodejs.org/ 下載安裝 npm install connect npm install express npm install morgan
Thumbnail
前陣子公司的專案時常發生記憶體不足的錯誤,套上監測軟體一看,逐漸攀升的使用量,到達上限後使程式崩潰,同事們馬上說出:「這是 Memory leak 啊!」 Memory leak 並不可怕,現代的工具可以讓我們快速找出問題並修正,這篇文章記錄了我們的解決方式,希望有幫助到大家!
Thumbnail
前陣子公司的專案時常發生記憶體不足的錯誤,套上監測軟體一看,逐漸攀升的使用量,到達上限後使程式崩潰,同事們馬上說出:「這是 Memory leak 啊!」 Memory leak 並不可怕,現代的工具可以讓我們快速找出問題並修正,這篇文章記錄了我們的解決方式,希望有幫助到大家!
Thumbnail
最近對爬蟲感到興趣,幾天的研究發現 Puppeteer 這套由 Google 開源、使用無介面操作 Chrome 做自動化測試的 Node.js 函式庫也能用來爬取資料...
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
11/20日NVDA即將公布最新一期的財報, 今天Sell Side的分析師, 開始調高目標價, 市場的股價也開始反應, 未來一週NVDA將重新回到美股市場的焦點, 今天我們要分析NVDA Sell Side怎麼看待這次NVDA的財報預測, 以及實際上Buy Side的倉位及操作, 從
Thumbnail
Hi 大家好,我是Ethan😊 相近大家都知道保濕是皮膚保養中最基本,也是最重要的一步。無論是在畫室裡長時間對著畫布,還是在旅途中面對各種氣候變化,保持皮膚的水分平衡對我來說至關重要。保濕化妝水不僅能迅速為皮膚補水,還能提升後續保養品的吸收效率。 曾經,我的保養程序簡單到只包括清潔和隨意上乳液
教學影音: https://youtu.be/SY5sRC2idk0 ============ 安裝 Node.js 步驟 1. http://nodejs.org/ 下載安裝 npm install connect npm install express npm install morgan
Thumbnail
前陣子公司的專案時常發生記憶體不足的錯誤,套上監測軟體一看,逐漸攀升的使用量,到達上限後使程式崩潰,同事們馬上說出:「這是 Memory leak 啊!」 Memory leak 並不可怕,現代的工具可以讓我們快速找出問題並修正,這篇文章記錄了我們的解決方式,希望有幫助到大家!
Thumbnail
前陣子公司的專案時常發生記憶體不足的錯誤,套上監測軟體一看,逐漸攀升的使用量,到達上限後使程式崩潰,同事們馬上說出:「這是 Memory leak 啊!」 Memory leak 並不可怕,現代的工具可以讓我們快速找出問題並修正,這篇文章記錄了我們的解決方式,希望有幫助到大家!
Thumbnail
最近對爬蟲感到興趣,幾天的研究發現 Puppeteer 這套由 Google 開源、使用無介面操作 Chrome 做自動化測試的 Node.js 函式庫也能用來爬取資料...