00:00
看这儿了,我们之前的这个mongoose的基本使用已经给他说完了,这就OK了啊,那然后我们要说些什么问题呢?那其实我们会发现我们之前我们昨天在讲这个mangos的时候,无论我是讲这个do呢,还是在讲model,实际上你会发现我上边连接数据库,还有我这创建STEM这些东西,我是不是都每次都给它。复制过来,每次都要给它复制过来,那其实这玩意儿是比较比较麻烦呀,比较麻烦,那其实你看看我们去操作数据,我只我用的是谁在操作,其实。用的谁是model,你无论是创建document还是去操作数据库,其实你是不是唯一要用的就是一个model,至于连接数据库,还有创建STEM这些东西,我是不是只需要执行一次就完事了,我不用执行那么多次吧,那么多次,所以现在看到这儿我们就想了,那我每一次这玩意儿只需要执行一次,我每一次弄的时候还不得不给它复制过来,那这个东西是不是有点。
01:11
有点麻烦呀,哎,有点麻烦,那我们想想,那我有没有什么别的办法能把这事儿给他。哎,让这个东西能重复使用呢?有没有什么方式让他们重复使用,哎,那我们就想我们刚讲no的时候,我们说了node里边是不是有一个模块化这么一个思想啊,那既然这个代码要反复的使用,那我想我能不能给他提出一个模块呢?哎,模块呢,那我们来先整第一个啊,那现在注意了,这连接数据库的代码,我是不是只需要连接一次呀,所以在这儿啊来我干嘛呢?我创建一个新的文件夹,我叫什么呢?叫做一个toth,哎,我的工具啊,我的工具,工具里边呢,我创建一个新的GS文件,我叫什么呢?Con connection,我们叫做一个mongo,什么呀,连接mongo的云数据库,那这里边我要定义一个模块,定义一个这个模块用来干嘛呢?用来连接我们这个mango DB数据库啊,用来连接。
02:18
这个mango DB数据库,那这个模块我们要怎么写?哎,那首先毫无疑问,我们先要挖一个这个mangos,哎,等于这个request来一个mangoose,我是不是先引入,然后在这我来一个mangoose,点一个connect connect mango DB冒号斜杠,斜杠127.0.0.1,然后冒号,我们叫做mangos test是不是连接这个数据库啊,还有这个数据库,然后这时候就完事了,如果你要再写的话,你也就是监听一下mongoose,点一个connection,点一个这个one,哎,One我监听一下它的一个open事件,然后再来一个function,直接来一个cancel.log,这是一个这个数据库连接成功是不是就OK了呀,顶多顶多写到这儿了,哎,那这写完了有什么用啊,现在注意了,这个模块一执行,它是不是就开始连接。
03:18
Mango DB数据库,诶,那假如说我这有这么一个文件,来一个零五.gs05我叫一个index.gs吧,这要写一个,那假如说我现在在这个GS文件里,我要连接mango DB数据库。哎,我还用不用把这个字哪写一遍,不用我是不是直接引入connection mango这个就行了呀,哎,咱们来看一下require一个,这个我要写一下路径是我们这个,诶点鞋盖我们这个toolth下边一个T耐mongo是不是影探形了,注意这会还用不用整变量接受了,不用了,因为在这里边我没有任何定义任何向外导出的函数吧,所以在这直接引入不用干嘛了,不用接收啊,直接运行我们来看是不是数据库连接成功啊,哎,少设一参数。
04:06
叫做一个use mango出啊这一保存我们再重新运行一下走,是不是就连接成功了,哎,你看程序是不是也挂这了,哎挂着了,所以那我这儿再连的话,是不是比我那个写一串就省事了,我只需要写一次在这儿我是不是就能能使用了,哎能使用了啊这是一个,那然后再看还有什么。那我现在要操作数据库,你光连不行,我还需要什么,我是不是还需要那个模型对象啊,哎,模型对象,那我想想我这模型对象我在这儿创建行不行,行肯定行,对吧,但是好不好不好,为啥不好?因为我在这儿创建了,我有可能在其他的文件里是不是也用了,哎,我可能在其他的模块里也需要使用,而我如果是在这儿创建了,我是不是只能在这用啊,哎,只能在这用那怎么办?
05:07
哎哎,那我再定义一个模块,这个文件夹呢,我先创建一个文件夹,叫一个什么呢?叫一个models,顾名思义,这里边放的都是我的什么呀,模型啊模型,然后在这我来定义创建一个GS文件,那我们想想我要需要一个什么模型,我们那个是student是吧,那我就叫student,叫一个student.js那这个是干嘛的呢?这个文件用来定义我们这个什么呀,Student的这个这个的模型啊,Student模型,那好,我们来看怎么定义,那我要定义student模型,那首先我先得来什么呀。Scmer吧,哎,Scmer我要用scmer,我还得来一个这个mongos,等于一个这个块,我们来一个mongos,先引入我们这个mongoose,然后在这儿你还用不用连了,用不用连了,不用连了,因为我们这个不是自己用的,是给别人掉的吧,说白了谁掉谁去连啊,谁调谁去连,然后在这我需要的是一个s ch em a schemer等于一个这个man古S点一个STEM,然后在这儿我要创建的是一个约束对象,挖一个SQ sc chema等于什么呢?New,一个STEM,创建一个约束对象,我们这里边,呃,咱们直接把我们之前写那个复制过来吧,我就不再写一遍了啊,我这里边一共是这么几个,选这么几个东西,Name age沾nder,还有把它address粘过来,这s scmer是不是有了s scmer有了,那接下来我是不是可以定义模型了,模型怎么定义啊来。
06:49
定义我们这个模型,直接挖上一个s t model mdl等于什么呢?哎,等于一个mongoose点一个model,这我要等指定的是集合的名字,然后这是stoche,这模型是不是定义完了,但是注意了,我不光这么写行不行,我这么一写在这我引入啊,我这来一个一个这个tu student等于什么呢?等于一个这个require require,谁呢?Require,我们这个点,我们这个叫models下边的student,我这么写行不行,我能能看到模型吗?看不到,此时此刻我们这个student它压根儿就,哎也就是一个空的对象。
07:39
看到了吧,是一个空的音象,那我想做的事是什么呀?我是不是要把这猫都给它暴露出去啊,那怎么办怎么办,我们是XPS点哎点model等于什么呢?等于STu.model那这样是不是给它报出去了,哎,抱出去了,那这块接收的时候你要注意了,我这个model是什么?Model现在是它的一个这个。
08:07
属性吧,哎,属性你要想获取到这个model,你在这时候还得点一个model啊,能懂吗?因为我这是以一个属性的形式给导出来了,点model,那这样我们来看我这个student现在才是一个正八经的一个什么呀,模型对象看懂意思吗?哎,模什么样?那现在我能不能标啊,我们来试一个来什么呢?Student的点一个我们来一个find find里边我传个空参数,然后传一个回调函数,这有一个这个error,然后是一个box,在这我直接if一个,这个没有错,如果没有错,我们就来一个DOS,点一个log,我看能不能用,如果能用是不是证明没问题了,哎,在这我们来运行do do运行一下走,是不是已经查到了,是不是这么就OK了呀,啊,就OK了啊,所以我们这么做的目的就是什么。那我把这个东西定。
09:08
你一次以后,我是不是在别的地方我可以反复的去调用啊,这就是我们一个拈块化的一个思想,但是这里边有一位置比较不好,哪不好呢?这块不好,我要想获取模型对象,我还得去点model.model那么想想我这个GS文件已经叫做stem.gs了,我是不是只想把这个模型给它导入,就想暴露这个模型,其他的我压根就不想暴露对吧,只想暴露模型,那现在我是把这个随这model设置成了这个model属性,我在这出来点一下啊,太麻烦了,我不想点,我想直接这哥们导出的就是一个模型对象,懂这意思吗?直接导出就是一个模型对象,那怎么办?哎,那我把猫都去了,我直接给它赋值不就完了吗?行不行?
10:04
这样行不行,哎,不行,因为这是不是又在改变量了,不是在改对象了,那我要想这么写怎么办?哎,直接再来一个这个,哎,Model Mo Mo Du model,点一个X,也就是说我直接把模型对象赋值给ex expose,这样我引入这个student以后,我返回那个是不是直接就是一个模型对象啊,那我就不用再去点了,能理解吧,实然省点事,但你说老师我不理解你,你还以刚才那方式写也没有问题,但是这种方式稍微的简单一点啊,简单一点效果是一样,看懂了吧,哎,效果是一样的啊,所以在这块我们把这个东西分成了两个模块,一个是专门用来连接数据库的,还有一个用来干嘛的,哎,用来,哎,用来创建我们模型对象,那这样的效果就是。
11:05
以后你有几个模型对象,你就创建几个什么呀,GS文件,你还有个user,你再来个点GS,你还有个teacher,你再来个teacher.GS用哪个模型直接一导入是不是就OK了,就不用再重复框建了,使我们代码可以进行复用啊,可以复用好,那我们这来听一下。
我来说两句