一、安装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