一、安裝mongodb
二、後臺文件中建立文件夾db數據庫
三、鏈接數據庫,並檢測數據庫是否鏈接成功mongoose
const md5 = require('blueimp-md5') // 1. 鏈接數據庫 // 1.1. 引入 mongoose const mongoose = require('mongoose') // 1.2. 鏈接指定數據庫(URL 只有數據庫是變化的) mongoose.connect('mongodb://localhost:27017/gzhipin_test2') // 1.3. 獲取鏈接對象 const conn = mongoose.connection // 1.4. 綁定鏈接完成的監聽(用來提示鏈接成功) conn.on('connected', function () { console.log('數據庫鏈接成功') })
四、接下來幹什麼函數
六、概念:文檔與集合ui
文檔至關於時一我的的信息,一條記錄加密
因此是單數spa
集合至關於時一堆人的信息,一張表3d
因此是複數code
七、定義Schema文檔的結構對象
八、定義模型model,scheme只是結構,有model才能添加數據
// 2.2. 定義Model(與集合對應, 能夠操做集合) const UserModel = mongoose.model('user', userSchema) // 集合的名稱爲: users /*3. 經過Model或其實例對集合數據進行CRUD操做*/ // 3.1. 經過Model實例的save()添加數據 function testSave() { // 建立UserModel的實例 const userModel = new UserModel({ username: 'Bob', password: md5('234'), type: 'laoban' }) // 調用save()保存 userModel.save(function (error, user) { console.log('save()', error, user) }) } testSave()
九、使用md5加密密碼
const md5 = require('blueimp-md5') // md5加密的函數
十、回調函數function (error, user) 的參數,第一個是錯誤信息,第二個信息文檔doc
十一、增刪改查
function testSave() { // user 數據對象 const user = { username: 'xfzhang', password: md5('1234'), type: 'dashen', } const userModel = new UserModel(user) // 保存到數據庫 userModel.save(function (err, user) { console.log('save', err, user) }) }
UserModel.find(function (err, users) { // 若是有匹配返回的是一個[user, user..], 若是 沒有一個匹配的返回[] console.log('find() ', err, users) })
UserModel.findOne({_id: '5ae1d0ab28bd750668b3402c'}, function (err, user) { // 若是 有匹配返回的是一個 user, 若是沒有一個匹配的返回 null console.log('findOne() ', err, user) }) }
// testFind()
function testUpdate() { UserModel.findByIdAndUpdate({_id: '5ae1241cf2dd541a8c59a981'}, {username: 'yyy'}, function (err, user) { console.log('findByIdAndUpdate()', err, user) // testUpdate()
function testDelete() { UserModel.remove({_id: '5ae1241cf2dd541a8c59a981'}, function (err, result) { console.log('remove()', err, result) }) } // testDelete()
十二、向外暴露model