美文网首页
ES6封装数据库操作模块

ES6封装数据库操作模块

作者: 晓妆初了明肌雪 | 来源:发表于2018-08-18 17:06 被阅读0次

    使用ES6的方式来封装一个数据库操作模块,目的是更快、更小、更方便

    本文重点考察在优化数据库查询效率,一方便是优化连接数据库的时间,另一方便是优化实例化对象所花费的时间。

    1.导入mongodb、assert模块,声明mogodb的url,声明数据库名字

    2.创建一个类Db,由于connect()和find()是平级关系,且都是异步操作,如果想在find中拿到connect()中的数据库名称,需要使用return  Promise()对象进行传值。

    由于异步操作使用return拿不到值 查找数据

    3.但是由于查找数据中又再一次调用了connect()方法,这样就再一次连接了数据库,因此就又花费了一些时间,从而降低了效率。为了节省连接数据库花费的时间。可以找一个中间者,进行判断监听。

    ①创建一个构造函数,在构造函数中初始化这个中间者this._mgdb=null。

    ②在connect()中的Promise类中进行判断,如果已经连接就使用之前的状态,如果没有连接,就重新连接。

    4.由于每次需要调用Db里面的方法,都需要实例化一个对象才能调用(因为Db里面的方法是动态方法,动态方法只能对象调用,所以需要先实例化),为了优化每次都需要实例化的操作,可以采用单例方法(声明一个静态方法,在静态方法中进行判断,如果没有则new一个对象出来,如果有,直接调用该静态方法即可(静态方法类可以直接调用,节省了实例化对象的操作!)

    相关文章

      网友评论

          本文标题:ES6封装数据库操作模块

          本文链接:https://www.haomeiwen.com/subject/vovfiftx.html