1. 程式人生 > >Koa2學習(九)與mongoDB互動

Koa2學習(九)與mongoDB互動

Koa2學習(九)與mongoDB互動

資料庫下載與安裝

windows下載地址:http://dl.mongodb.org/dl/win32/x86_64

linux下載地址:https://www.mongodb.com/download-center#community

安裝教程略

資料庫驅動

node.js要與mongo互動,需要安裝mongodb驅動。

npm i mongodb --save

mongoose則是node.js中一個非常流行的對mongodb驅動的封裝,內部已經實現了連線池,ORM等功能,對開發人員十分的友好。我們也用mongoose來學習操作mongoDB

安裝mongoose

npm i mongoose --save

資料庫操作

在業務比較複雜的情況下,整個專案應該有一個合理的分層資料流程:

  1. 引入依賴庫 -> 連線資料庫
  2. 定義模型model(最好寫在model目錄下)
  3. 一系列業務邏輯 -> 生成實體物件 -> 一系列業務邏輯(最好寫在controller下)-> 對資料庫進行curd
  4. 定義路由 -> 訪問控制器(最好寫在routes目錄下)

現在以一個特別簡單的插入操作來學習:
http.js

const Koa = require('koa')
const app = new Koa()
const mongoose = require('mongoose')
// 連線資料庫:[ip/域名]:[埠號(預設27017)]/[資料庫(db)]
mongoose.connect('mongodb://localhost:27017/test')
// 定義模型
const Cat = mongoose.model('Cat', { name: String })

app.use(async () => {
    // 例項化一個實體物件
    const kitty = new Cat({ name: 'Zildjian' })
    // 執行插入操作
    const res = await kitty.save()
    // 列印返回結果
    console.log(res)
})

app.listen(8000)

module.exports = app

模擬測試

  1. 啟動服務:
node http.js
  1. 瀏覽器訪問:localhost:8000
  2. node控制檯檢視執行結果(有資料返回說明插入成功):
{ _id: 5b3b2e074452fb32a448eda7, name: 'Zildjian', __v: 0 }
  1. 登陸資料庫檢視資料(本例以mongo命令列工具為例):
use test
# switched to db test
show collections
# cats
db.cats.find()
# { "_id" : ObjectId("5b3b2e074452fb32a448eda7"), "name" : "Zildjian", "__v" : 0 }

可以看到資料已經插入資料庫。

更多操作

需要了解更多的資料庫操作,請訪問mongoose官方文件:
http://mongoosejs.com/docs/queries.html