• promise数据库操作案例


    首先注意一点:mongoose所有的API都支持promise,例如find和findOne等等。接下来结合之前的mongoose操作案例,做个验证

    凡是操作数据库,都是异步

    之前的mongoose案例

    /*1、引包*/
    var mongoose = require('mongoose')
    var Schema = mongoose.Schema/*Schema译为架构、结构*/
    /*  
        2、连接数据库
        案例连接本地test数据库
        注意:如果数据库不存在则会被创建,直到插入数据后便看见了
    */
    mongoose.connect('mongodb://localhost/20200203')
    /*
        3、设计集合结构(通俗理解为设计表结构)
            字段名称就是表结构中的属性名
            值为属性值的类型
    */
    var userSchema = new Schema({
        userName:{
            type:String,
            required:true/*必须有,不能为空*/
        },
        password:{
            type:String,
            required:true
        },
        email:{
            type:String
        }
    })
    /*4、将设计的文档架构发布为模型*/
    var User = mongoose.model('User',userSchema)
    /*5、增加*/
    var admin = new User({
        userName:'admin',
        password:'admin123456',
        email:'admin@qq.com'
    })
    /*6、增加完后,需要进行持久化存储*/
    // admin.save(function(error,result){
    //     if(error){
    //         console.log('存储失败')
    //     }else{
    //         console.log('存储成功')
    //     }
    // })
    
    /*查询*/
    // User.findOne(function(error,result){
    //     if(error){
    //         console.log('查询失败')
    //     }else{
    //         console.log('查询成功')
    //         console.log(result)
    //     }
    // })
    
    
    
    
    /*删除数据*/
    // User.remove({
    //     userName:'张三'
    // },function(error,result){
    //     if(error){
    //         console.log('删除失败')
    //     }else{
    //         console.log('删除成功')
    //         console.log(result)
    //     }
    // })
    
    
    /*更新数据*/
    User.findByIdAndUpdate('5e382e75331cd51830c10a1d',{
        password:'666666'
    },function(error,result){
        if(error){
            console.log('更新失败')
        }else{
            console.log(result)
            console.log('更新成功')
        }
    })

    之前的方式:

     现在将其改为promise方式

     然后开启数据库服务,测试下查询操作,如下所示,可以正常查询获取

    (1)场景举例

      

       这里便涉及到异步操作

      假设要注册一个已经存在的名字为admin的用户,此时可以正常查到

      

    接下来判断用户是否存在,进行状况处理

      

      之后可以查询数据库,可以看到数据已经存储。

    只要出现异步回调嵌套,便可以使用promise方式解决

      

    (2)老式嵌套方式

      

      此时如果再有回调便容易成回调地狱

      

       

    .

  • 相关阅读:
    UML类图与类的关系详解
    UML用例图总结
    jQuery随机抽取数字号代码
    贪心算法
    回溯法实例详解(转)
    React 表单元素实例
    React 组件嵌套 父子关系
    React 滚动事件
    error: Error trying to parse settings: Unexpected trailing characters in PackagesUserPreferences.sublime-settings:9:2 reloading settings Packages/User/Preferences.sublime-settings
    jquery 下拉框左右选择
  • 原文地址:https://www.cnblogs.com/fightjianxian/p/12270846.html
Copyright © 2020-2023  润新知