[NodeJS] mongoose 使用方式

Matthew Chang
3 min readFeb 17, 2019

--

mongoose 是一套給 Node.js 用的 MongoDB ODM,透過 mongoose 可以用包裝過、更高階、更直覺的 API 語法,以及模擬 SQL 資料庫 schema-based 的方式,來操作 MongoDB 資料庫。

安裝方式

npm install — save mongoose

使用方式

mongoose.connect(DB連線的URI);

一般來說會把連線資訊等放到 keys.js ,再從 index.js 呼叫使用(如下圖)

接著新增目錄結構與檔案如下圖

在User.js 裡面透過Schema的設定來建立mongoDB會用到的 Collection,在這裡mongoose.model()就會建立一個Users的Collection,注意到這個Users的Collection不會重複建立,mongoose會自己判斷如果不存在才會建立

接著來嘗試用passport.js來測試存入資料到mongoDB(如下圖)

mongoose.model(‘userd)先建立 model class,然後 new User() 建立起 Instance,最後的.save()才會將資料存入 mongoDB 的 collection(如下圖)

存檔之後,開啟服務,嘗試使用 http://localhost:5000/auth/google,成功之後在mongoDB內就可以看到新增的user資料了

但這裡會有一個問題,每次使用 http://localhost:5000/auth/google成功之後都會在mongoDB看到新增的user資料,不管是不是同一個googleId。所以我們必須對 passport.js 再做一些調整(如下圖)

利用 User.findOne()先找出是否有存在的googleId,再利用promise的特性(.then),符合條件的時候才再新增一筆googleId進mongoDB

--

--