透過NPM安裝的套件:Mongoose
本頁面目錄:
安裝Mongoose以及設定資料庫連線
建立Model以及種子資料
安裝Mongoose以及設定資料庫連線
確認MongoDB已安裝且在服務列表運行中
打開Robo 3T,選擇連線位置(預設為localhost:27017)
建立資料庫$ nvm i mongoose
使用npm於專案資料夾中安裝Mongoose(MongoDB資料庫套件)
// app.js, include mongoose and setup connection to mongoDB
const mongoose = require('mongoose', { useNewUrlParser: true, useUnifiedTopology: true })
mongoose.connect('mongodb://localhost/test-server')
在app.js中引入mongoose並連線到mongoDB
路徑內容說明(教案內容)。帳號密碼未設定可省略;Port預設值為27017(預設狀況可省略)// 取得資料庫連線狀態 const db = mongoose.connection // 連線異常 db.on('error', () => { console.log('mongodb error!') }) // 連線成功 db.once('open', () => { console.log('mongodb connected!') })
db.on()表示一旦有'error'事件發生就在console當中印出訊息
db.once()僅觸發一次,連線成功時在console當中印出訊息
建立Model以及種子資料
新增資料夾以及model的js檔
const mongoose = require('mongoose') const Schema = mongoose.Schema const testSchema = new Schema({ name: { type: String, // 資料型別是字串 required: true // 這是個必填欄位 } }) module.exports = mongoose.model('Test', testSchema)
new Schema()設定新的Schema,根據資料需求設定需要的屬性;module.exports輸出
const mongoose = require('mongoose') const Test = require('../test') // 載入 todo model mongoose.connect('mongodb://localhost/test-database', { useNewUrlParser: true, useUnifiedTopology: true }) const db = mongoose.connection db.on('error', () => { console.log('mongodb error!') }) db.once('open', () => { console.log('mongodb connected!') })
在/model新增資料夾,裡面新增種子js檔
引入mongoose以及載入Schema路徑,並在此js建立資料庫連線
db.once('open', () => { console.log('mongodb connected!') for (let i = 0; i < 10; i++) { Todo.create({ name: 'name-' + i }) } console.log('done') })
在db.once('open')當中用迴圈使用Schema.create()產生資料
[~/test-server] $ node models/seeds/todoSeeder.js在Terminal下執行種子檔案,之後就會在資料庫產生種子資料
[~/test-server] $ npm run seed最後在package.json中新增npm run seed腳本,只要執行$ npm run seed就可以產生種子資料




沒有留言:
張貼留言