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
數據庫操作
在業務比較復雜的情況下,整個項目應該有一個合理的分層數據流程:
- 引入依賴庫 -> 連接數據庫
- 定義模型model(最好寫在model目錄下)
- 一系列業務邏輯 -> 生成實體對象 -> 一系列業務邏輯(最好寫在controller下)-> 對數據庫進行curd
- 定義路由 -> 訪問控制器(最好寫在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
模擬測試
- 啟動服務:
node http.js
- 瀏覽器訪問:localhost:8000
- node控制台查看執行結果(有數據返回說明插入成功):
{ _id: 5b3b2e074452fb32a448eda7, name: 'Zildjian', __v: 0 }
- 登陸數據庫查看數據(本例以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。
