• 使用mongoose


    1、安装

    2、后台文件中创建文件夹db

     3、连接数据库,并检测数据库是否连接成功

    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('数据库连接成功') })

     4、接下来干什么

     6、概念:文档与集合

    文档相当于时一个人的信息,一条记录

    所以是单数

    集合相当于时一堆人的信息,一张表

    所以是复数

    7、定义Schema文档的结构

     8、定义模型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()

    9、使用md5加密密码

    const md5 = require('blueimp-md5') // md5加密的函数

     10、回调函数function (error, user) 的参数,第一个是错误信息,第二个信息文档doc

    11、增删改查

    // 3.1. 通过 Model 实例的 save()添加数据
    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)
    })
    }
    // testSave()
    // 3.2. 通过 Model 的 find()/findOne()查询多个或一个数据
    function testFind() {
    // 查找多个
    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()
    // 3.3. 通过 Model 的 findByIdAndUpdate()更新某个数据
    function testUpdate() {
    UserModel.findByIdAndUpdate({_id: '5ae1241cf2dd541a8c59a981'}, {username: 'yyy'},
    function (err, user) {
    console.log('findByIdAndUpdate()', err, user)
    // testUpdate()
    // 3.4. 通过 Model 的 remove()删除匹配的数据
    function testDelete() {
    UserModel.remove({_id: '5ae1241cf2dd541a8c59a981'}, function (err, result) {
    console.log('remove()', err, result)
    })
    }
    // testDelete()

     12、向外暴露model

  • 相关阅读:
    序列化器:serializers(django-rest-framework)
    数据库模型:models(Django)
    AtCoder Beginner Contest 213【A
    Codeforces Round #736 (Div. 2)【ABCD】
    AtCoder Beginner Contest 212【A
    Codeforces Round #732 (Div. 2)【ABCD】
    VS201X windows下编译提示缺少ucrtbased.dll文件
    Locust1.6 从入门到实战
    如何理解Windows认证流程
    HTB::Forest
  • 原文地址:https://www.cnblogs.com/carry-2017/p/11755578.html
Copyright © 2020-2023  润新知