Koa2學習(九)與mongoDB互動
阿新 • • 發佈:2018-11-17
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。