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

Koa2學習(九)與mongoDB交互

實現 成功 對象 內部 數據流程 bject 連接數 god 令行

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。

Koa2學習(九)與mongoDB交互