00:00
好了,另外咱们这一小节来看一下我们的小程序是如何连到service类,最终打通到数据库中的啊,很多人说看这没有什么好研究的,调一下就行了呗,哎,咱们来试一下啊,因为咱们之前呀,咱们在serve类中啊,就一个select啊,咱们也没有传点参数,你说小程序到时候往咱们的so类中传参,诶这事儿怎么整呢?对吧?你不是说我要隐私的插入一条数据啊,我注册了一个新用户吗?那小程序端必须再有一个流程啊,就是提交,你是用get方式还是用posts的方式提交用户名啊,提交一些信息过来,Serve类在通过get或者post的方式来接收到这个信息啊,接收到信息之后,他在利用我们的inser的这条SQL语句啊,在我们刚才马q to这个模块下,怎么样插到我们的数据库中啊,所以咱们把这个完整的链条啊给走通啊,咱们还是分别两块来走,因为。
01:00
那我们小程序在提交的时候呢,它可能按照get和post,而且连接的我们的serve list,它也可能是我们的事件函数,或者是咱们的web函数,咱们两个呀,可以都给大家来调试啊和演示一下,OK,咱们先通过我们的小程序,点完之后咱们可以发送一个阿贾克斯请求,咱们把我们此时固定好的哈用户名和密码给它传到我们的服务器上,好吧,来,在这里咱们打开我们的小程序的这个终端,来走到我们的小程序,咱们还是沿用了客之前那个小程序代码,我们之前做过演示,因为我之前的云函数还都在,所以点完之后咱能test测试我们这个云函数,那接下来咱们可以呀,再写一个按钮,要在这个按钮的基础之上啊,咱们可以来测试我们的注册用户的一个作用啊,咱们在这里是test的,Sir,这叫注册用户,然后我们在这里handle tap,我们这个user register吧。
02:00
配1OK,再把这个函数一复制,然后咱们来到我的demo.gs中,咱们来写一下这个函数的这个具体的这个逻辑啊,在这里咱们先用最简单的方式,什么方式啊,Get的方式来去把这个数据传过去好了,我们在这里按照wx request这代码应该不用写了吧,直接来到这里来,咱把这个地址的话呢,给它找一下,这块没有什么问题哈,我们没少东西啊,OK,在这里咱们来找一下我们这个server list中啊,撤出来找到我们test中,Test中咱们找的是这个啊get srcular1啊,这是咱们的啊第一个事件函数的,然后我来看一下它的这一个链接地址,就是咱们的触发器的地址,因为当时我测过哈,这个触发器这个地址的话呢,是可以的哈,在这咱们把这个地址呃,拿过来好了,在这测一下,在我们的网页中是没有问题的,咱们把这个地址一复制,扔到咱们这个地方来,所以我点。
03:00
第二个注册按钮的时候,咱们测的就是它了,咱们来测一下吧,来点击这个注册用户,你看成功的返回的这个数据就说明小程序到serve list到数据库是通的,那现在咱们要把这个数据提交过去,我们wx request的默认不显白,它是盖的方式,把name等于k age等于100这两个字段,还有telephone的phone咱们写一下,咱们按照盖的方式给它传过去了,Telephone的phone是111好传过去之后,咱们在我们的服务端,我们的server类似云函数中怎么来接收呢?来看一下,我们给大家打一个东西,打印一个log,应该就是这个方法中吧,咱们正好在线直接测试就可以了,我们把代码中在这里接收到了event这个对象,我把这个一问的对象给大家打一下,另外可以看一下我们传过来的那个值在哪里呢?好,我们改完之后再部署呀,部署之后我这块部署完了,我就可以在小程序中点按钮了,就这么简单对不对啊,小程序中来点一个按钮。
04:00
是点走你这一块响应了啊,咱们主要的是看他这块的一个打印出来的日志是什么,因为这个log呀,咱们只能在这个日志查询中进行查询,来跟客来看一下这个日志打出来是啥呀,往上咕噜一下来在这里是不是啊,疑问的这个对象传过来这hier这些东西都是hier啊,我们请求头部分诶里面有一个query string,哎,这个属性值,所以拿到这个query string,其实咱们get请求传过来的这个对象这个东西嘛,所以我们直接REQ啊,我们的event.query string,不是IEQ啊,在这里的话是我们的event.query string就可以了,就是他,那接下来就是我们要进行注册的操作,所以可程简单的改一改哈,改的话就是这个连接池,不用改,还是一样的,然后query这块,咱们给它改成什么insert呗,来insert,然后怎么样in into,你也可以把咱们之前写过的那个命令了,给它粘过来用一下就行了啊,我们在这里的话是往哪去插入呀。
05:00
对不?色into users这张表中,然后它里面的话呢,有对应的ID这个字段,然后还有我们的这个这一个字段,还有我们的age这一个字段,还有我们的t telephone的phone这一个字段,然后在这里它的那个values这个值,Values我们给他的这个值是什么呀?啊,它这个用法是这样的啊,就是你把这个语句这块你不要着急去写东西,你打几个问号,对应的前面有几个字段就打几个问号,四个问号对吧?这是咱们这个马to的一种用号,呃,Query这个方法,色into userage这张表中,然后分别对应的ID name age字段,然后value中的话,对应着四个问号,然后在第二个这个参数中传一个我们的数组,哎,这个数组的话,就是你真正的这个值no,因为我这个ID是自增长的,然后name,另还有T这个值,咱们给它传过去,你拿出呃,Name age。
06:00
但是从哪来的客们是不是从咱们这里面给它解构出来的呀,所以我们在这里的话,就会对于我们的I解构和对象的解构,Name age,它的phone等于,哎,在这里大家可以看一下来,这个只要一会发起球过来,我们会把疑问的query string这个对象的话呢,进行一个结构,拿到的是name age tr3个字段,然后我们对于这三个字段的话呢,传给了我们哪里啊,我们这个query这个方法中,这表示是咱们的插入一条数据,哎,在第二个参数中,你对应的这个数组的顺序就是跟之前的这个顺序是一样的,ID穿空name age tr正好是前端咱们get方式给它传过来的,哎,我认为啊,这一块的话咱们就快要成功了,而这里需要改的就是你这次不是查了,所以你返回的user色的在中号零啊,我估计也拿不到什么信息了,咱们直接就返回一个插入成功吧,Insert来一个什么呢?呃一表示。
07:00
插入成功这样一个对象给咱们的前端给它扔回去,返回出去就可以了,好了,列位咱们写完之后来跟客文来测试一下啊,咱们还得把这个代码进行一个部署啊,部署完了我们马上就要看到结果了,开不开心呀,测试部署啊好了,部署完成了,已经咱们在小程序单,咱们点一下点击注册用户走你咱们看一下我们返回,哎呦因色一对一下好成功了,那这个到底成不成功呢?也不是靠这里来说的,而是靠我们真正的数据库中有没有这条数据呀,哎,看到这儿别惊慌,一定要刷新一下啊,因为这个数据啊,它是后期加进去的,哎,科们你看100,它这PHONE111,你看这不就插入进来了嘛,所以我说呀,你现在啊,再是什么更新啊,删除就没有问题的,因为你可以成功的从小程序端把一个值get传给咱们的service release service release可以通过我们的点。
08:00
Query来接收,所以我要讲的这个重点就是我们的关于事件函数来怎么接收咱们的get的请求,你要会的接收get的请求,这个人一定会想说那客们那pose的请求怎么传,因为我觉得注册的时候咱们好像传承这种pose的应该更加科学一点吧,你这些get有点铭文传输的,放在地址中去传对吧?哎,所以咱们在这里给它改成post。Post在小程序端只需要写一个method,咱们给它改成这一个什么呀,Post的方式,然后在这里success,我想说咱们当时在创建我们这个函数的时候,它能够进行get post都能够接收,问题是列你自己想一想,它可能还在query string中吗?Query这个东西大家都知道,1QUERY啊,就说明是get传过来的,说这个时候你猜啊,也能够想一想,咱们之前学no的时候,应该是往这个包的这个边去提啊,我们postose的请求跟get请求的区别是我们post放在请求体中啊,它更安全,所以这个时候接收的时候呢,我猜的应该是e event.body那这个时候有人就说了,看没你猜的,那是因为你知道,那我看看是不是呀,是不是这个event.body我顺便打印一下呗,Eve点包这个对象,咱们给它conso log打印一下,那这个时候我为了有点区别嘛,我就把这个池子给它改一改,比如一一然给它改成年。
09:26
那个是1000好家伙这岁数哈,然后这个电话是11122,好了,保存之后咱们来看一下,把这点数据咱们能不能拿过去,我们现在相当于把英文的包进行结构,然后在这里并且打印了一下啊,我做个辅助的一个测试嘛,点击部署,咱们来看一下,看current这次posts我们有没有成功呀,列位来好,我们在这里点击这个小程序端,我们点击这一个什么呀,注册用户之后咱们来看一下哟,这块什么呀,不是银色的一就看了呀,果然是报错了哈,我们没有返回音色的一就说明出错了,出什么错了呢?说什么user code怎么怎么样,说这个name字段不能为空啊,怎么可能我name字段为空来,按照咱们正常的调试规则,应该是打开咱们的network,然后在这里来查一下咱们这个请求的这个数据是不是在这里啊,查一下咱们最新的这一个请求的这个数据哈,在这。
10:26
这啊,查一下我们按照是我们的post的方式,是不是是post发出的这个请求的话呢,就是按照这个post方式发的,在request中把这几个字段传过去了,但返回值确实是不如人意,内幕为空。好,咱们在这测试完了小程序它没有问题,那就是我们这块出问题的难道不是在even点包中吗?结构出来没有这个内幕字段,所以even.body没拿到东西,哎,咱们可以打开这个日志查一下,打开日志发现even body,你会发现拿到的是什么呢?科对呀,你看看的保底还是这一个东西,Name科一一千,TELEPHONE112可没问题呀。哎,这就奇了怪了对吧?啊,所以彩这里了,就很神奇,你知道吗?你的query string啊,他帮你给解析成了杰森对象了,但这个even的点包子的话,他居然是一个杰森斯符串,别问我是怎么知道的对吧?吃过亏的人啊,自然会知道的,所以你还得自己把这个杰森斯符串给解析一下。
11:26
很奇怪哈,我们的querys这自动转换成对象的,你可以直接解构拿到数据,但是我们的even的body这种pose的话呢,他拿到的居然是一个Jason字符串,你说我还得自己的话呢,再解构一下,嗯,所以我在这里啊进行了这P,那这样的话呢,好,再去做一次测试,反正我们数据库中刚才估计是插入失败了,应个里面没有东西啊,这就对了,好,我们再来一次啊,改完了这个Jason p加上去之后,那重新呢,在这里点击一下部署,嗯,部署完了,我们又可以拿出来我们的小程序端啊,在这里点一下注册用户了,好了,我们来看一下这块应该部署成功的吗?来走,你,咱们来测试一下,在控制台等待一个成功的反回INER1,哎,我在这里呀,我连看这都不看,直接去刷数据库,看看有没有最新的这条数据,如果有的话呢,哎,请给我一秒钟的掌声,对吧?果然成功了,OK,这是咱们对于事件。
12:26
二函数中我们通过get的方式,在我们的serve list端,咱们用啊query string来去获取,然后咱们在posts的话呢,用我们的啊event.body方式,但是要进行per一下才可以拿到,OK,这是我们的事件函数,那接下来就是咱们的web函数,Web函数最大的好处就是它可以不用在这种啊我们的语音上进行测试,因为你可以直接在本地搭建好环境的,并且开通了我们的外网数据库,咱们直接在本地测完之后,咱们再给它传到远程服务器上,那就可以来白列呗,是不是就这么简单呀,所以我们可以在这里来,在本地测完之后咱们再给它改造到远程服务器上,因为看log多方便呀,所以我可以打开我们这个app.gs在这里啊,我们之前的话呢,是这样的,大家也知道这个是咱们的什么响应前端的get请求,那么至少现在先测一下啊。
13:26
Local host的9000是吧,他能够拿到这个数据好一回车之后,现现在拿到三条数据的,因为刚才插入了几条吗?把这个地址一复制来,在小程序这一块,你给我粘一下,粘成它,粘成它没问题吧,一粘一测试之后来咱们测一下,一点击注册用户,它返回来,哎呀这块是这个POS的,咱们应该先正常的给他是默认的get,按照get来它这样的话改成get之后再重新测一下,拿回来这个数据,就是至少咱们之前写的那段代码是没有问题的,在咱们的微信客户端啊,并且我们是在这个啊详情设置中的话呢,我们是不叫接合法域名的,我们可以访问本地的服务器啊,然后本地的服务器连的是远程的数据库,所这个通路是打通了的,那这个时候我们再给它改成get的方式传参,然后咱们在这怎么去接收这个参数呀,诶这一会就来到我们会议那个node开发的人的这个天下了,大家说看们我是会node开发。
14:26
它的,所以在这里我太知道了,IQ点什么呀,IQ点什么啊,咱们在这里写一个re EQ点宽瑞拿到之后我们来看一下,你看这个看到太方便了,来咱们在这一点完一保存完之后记得吗?当时克瑞是用的这个叫做noe杠第一位启动的这个服务器,所以我在这里它会自动重启服务器,监测到我这个文件被修改了,自动重启服务器太方便了,所以我现在只要在我的小程序端一点我这个log就啪的打印在控制台上了,你看一下这个调试简直是太方便了啊,来点一下走,你好,咱们看一下控制台有没有这个log出现下,大家可以看一下出没出现我们的这个log值,是不是在这里得到了这个值了吧,那拿到了这个内容值的在这里哈,在这里这个值啊,我们的req.query这个尺拿到了。
15:18
所以我们就可以在这里啊,咱们把那个conso log.user咱们给它注掉了,所以I快直接从里面解构出来就行了,所以我们在这里就是把那个in into那句话再给它写成,写在这里就写到insert,我直接复制一下吧,怎么敲起来这么麻烦呢?来,来到我们代码中是不是这一句话呀,我们给它复制啊,粘贴到我们这个地方来,诶,就它一句话,此into user ID name tr,那大家也知道,Name tr都是从咱们的IQ点宽RY容咱们给它解构出来的,OK,在这里啊,咱们在这里给它写好啊,我们通过我们的ES6的解构方式,从re Q点块中拿出来内TELL3个字段,让咱们再传到这里来,让咱们的RES4中的话呢,咱们这块就给它send回来一个什么呀,Insert,呃,一插入成功啊这样的,因为你在send回来这个就没有意义了。
16:19
你这user这也不是咱们的啊,Select选择了,那查询的是咱们的插入这一块啊,所以我们在这里INSERT1返回给咱们的前端,或者返回给小程序端就可以了,OK,看看我们的web函数啊,在本地测完之后,在get调用的情况下,咱们看一下能不能拿到这个只能来运行之后来到这里测试。咱们再把这个内容测试的内容再给它改改,比如说改成科222,科文已经改成了2000岁了啊,然后在这里telephone phone22333好点击保存,以盖的方式点击注册用户返回值,有没有咱们的这个查询成功呀,诶我在这里好像没有成功,我们来看一下这个结果是怎么了呢?来在这里咱们看一下这个数据,Local host我们按照了是我们这里啊看一下。
17:10
保存了吗?咱们保存了之后重新启动一下,我们测试一下啊,重新的把这边给清掉了,然后重新点击这个注册之后喷顶卡住了啊,我们在这里的这个数据没有成功,嗯,看看这块代码有没有什么出错的地方,呃,Promise poor,我们inside into user ID name value这一块,把name age t当成数组给它传过去了,所以在这里拿到了这个值没有问题呀,代码确实是没有问题的,但是最坑呀,是坑在了我这个地方,就是这个帕最大的一个弊端就是什么呀,你千万不要这个选它,你选了之后的话呢,他这个你终端就被打断了,所以在这里的他就不工作了,所以你这个时候你一定要怎么样呀,哎,这个不能选中它,如果你一旦选完了之后,就像客一样,给大家为了演示啊,这不在这吗,这个数据选完了之后,终端被暂停,那这样的话,数据库我们的这个。
18:11
个node服务被挂起了,所以说CTRLC来取掉啊,那这样的话呢,开始了,重新已经对吧,来启动了,好这样来说的话又工作了哈,所以代码刚才是一点问题也没有的,我们小程序端也没有问题啊,所以这样的话,我们再来一次点击注册用户之后,很轻松的返回了200IN色一这一块,那接下来咱们可以在我们的这个数据库中,咱们可以查一下看客们刚才新插入的那条数据,222是不是已经被成功的拿过来了啊,所以说没想到又卡在了这个power she这一块,哎呀真是出师未及身先死啊,常史英雄泪满襟呀,就各种问题啊,各种小问题啊,所以有时候这种问题都莫名其妙啊,爬完是要我选一下,还能给我卡住服务CTRLC啊,这个才能正常的继续工作了,OK,那这样的话我们就可以继续的,刚才我们演示的是在咱们的前端中,我可以直接按照get的方式把数据传过来给到我的这个。
19:11
呃,Serve类似服务对吧?当然是我们本地的这个事件函数,呃,我们的web函数拿到这个数据之后啊,我们可以成功的插入到我们的云数据库中,它是工作的,它也是好用的,那接下来列外,如果咱们按照这种poose的方式当如何去做呢?另外这个poose的方式啊,你且得想一想了啊,我们在这大家都学过,或者有人不知道X express就很难了,那这样吧,可能就当大家是不知道我们X price这种posts的话,你小程序端非常很好改造啊,你小程序端只需要在这里给它改成这个po post的,然你把这个数据一替换咱们,咱们很轻松的就能把这个数据POS的给我们这个node,但是运行之后啊,一点击POS的大家会发现居然是报一个404,可我怎么可能刚才还好用的呢哈,怎么现在就404不存在了呢,LOHO49000怎么可能不存在呀,对吧,我们LOHO4的9000现在只响应的是。
20:11
GA的请求啊,对,我们在这启动6HOSTS的9000服务器,你只响应了一个GA的请求,如果你想响应poose的请求的话呢,诶,你就需要在这里的话再来一个点post,所以在这个我们的note GS开发中,我们的X express还是蛮讲理的啊,就是点get是响应前端的啊,我们的HTTP的get请求,我们这个是响应我们前端HTTP的这种posts的请求,那同样的,哎,有人说啊,到这的话我可就会了,因为我只需要在这里进行一个什么呀啊EQ点包力就能拿到这个数据,我奉劝你一句哈,在这里的话切莫这个着急啊,因为这是咱们X的最基本的一个使用,如果你上来的话,就在这里REq.body去解构,你啥也拿不到,我建议你哈,先打印一下这个IQ body能拿到一个什么值啊,因为咱们想刚才一的点string.body n能不能拿到,那这个不应该吗?I1运行之后咱们测一下啊运行。
21:11
能测试之后,至少现在我们的POS的请求啊,它能够正常响应的来保存之后我们重启一下我们的这个服务,OK,服务重启了,来咱们来测试一下IEQ点包这一块,把这块代码已经注释掉了,好,我们点击一下这个小程序这里,嗯,点击这个走,大家会发现返回的音色的一这一块,咱们看一下此时我们的控制台打印出来的啊re eq.body是onde defend的,我刚才解构的时候还报错了是吧?啊,所以在这里果然是有事的啊,嗯,所以在这里直接解构是一定不行的,因为其是find的,所以说X price在这里呢,它是拿不到我们的post过来的数据,如果你想拿到的话呢,你还得借助一个小的一个模块,这个小模块叫body p,这样的话,你把这个小模块配置在咱们的X price中,才能拿到前端post过来的这个数据,然后你再把你的这个数据库这些东西再给加进去就可以了。
22:11
来咱们来看一下啊,在这里是如何拿到,如何配置的,你要引入一个东西叫什么呢?叫body personer啊,Require这个小模块,你不用安装啊,它已经自动安装好了,对吧?啊per body-perer这个模块,然后我们要基于我们的这个APP是X express创建的对象,然后在这里相当于use use,你可以认为是把我们这个中间界进行注册,用这个小模块啊,来进行我们的一个包的的一个解析。咱们在这通过这个use方法啊,注册啊,在这里body per这个对象里面有个Jason方法,表示前端post过来的那种Jason数据格式的,我能够进行解析的,因为咱们知道我们posts的方式的话,就是咱们只说这种posts的字符串的方式啊,我们有这样一些方式,有这种Jason字符串啊,我们的内幕冒号坑啊,逗号啊,然后age冒号100啊这种方式,所以前端在传的时候就是application Jason格式的传过来,所以这句话就能解析那种Jason格式的,那除了这种格式,大家还知道咱们前端往我们的后端传输的时候,咱们也可以给他们postose的传过去,但是我们的内容格式是name等于K与上in等于100,咱们称之为这种方式的话呢,是什么?Application x3w form URL include,这种叫form编码格式的,所以这种编码格式的在我们的后端就必须。
23:42
通过form编码格式来进行解析啊,所以有的后端的话,它可能只能响应一种,要不然只响应Jason,要不然只响应这种form编码的,所以说你的后端在写接口的时候,就会跟你的前端嘱咐一下,你必须给我的是啊,URL code这种phone编码格式,要不然就嘱咐你,你必须post过来的数据是Jason的,说你一旦传错了啊,咱们后面就拿不到数据啊,我在这配置的这个东西的话,是X express的body p这个小模块,他这句话加上去是支持这种Jason字符串的,而下面这句话加上去就支持咱们的什么呀,URL encody的这种格式的,哎,在这里的话呢,你把这个格式的话呢,给它传进去就可以了,OK,两句话加完之后,表示此时客这个no的后端既能接收前端posts过来的GS字符串,也能接受前端S过来的编码放网编码格式的这种数据了,然后接下来你再测一下。
24:42
我们这一个阿Q body到底能不能拿到数据呢?诶,你这个盖的话,他已经不管它了,咱们走的是postose的请求啊,所以你现在在小程序端发post,看一下我阿1Q包对拿到了,到底是一个什么样的数据呢?来走你测试了啊,点击之后咱们看哪里啊,看咱们的控制台,我们的这个控制台我没有放在Vs code中集成去用啊,因为也不是项目,我就随意的放在外面的power she,但放在这大家能清楚的看到,此时已经能够接收到小程序端给传来了这样一个对象了啊,它自动还给你解析了Jason了所内幕啊,这些值都拿到了,那这样都拿到之后你才能够说,哎呀,我才能够放心的说,那这样吧,我就可以把这些代码就给它放出来了,IEQ的body进行解构,Name t拿到了之后,再进行数据库的一个插入工作,最后再send,那这样的话就成功了,一保存之后,另外咱们就可以在这里来测试一下。
25:42
啊,是不是我们可以在小程序端,咱们就可以在这点击这一个什么呀,注册用户来这一次是真刀真枪的干了对吧,因此一返回成功了,就说明我真的往数据库中插入了,那有没有插入成功的,还是一刷新啊便知道大家会发现最新的一条数据就有了,诶所以你会发现啊在调用这种web函数的时候确实非常的方便,那接下来最后一步就是你只要把这段代码怎么样呀,咱们ctrl a,然后咱们的话呢,CTRLC咱们拿到哪里去就行了呀,拿到咱们的这个云端来,最最后测试一下,那这样的话呢,我们这个就完活了,大家可以看一下,咱们给它粘到这个S3种,因是咱们的这个代码嘛,我们现在给它不再是这是select的查询的,我们给它改成了这种注册银色的插入了是吧,所以把这个代码给它ctrl a删掉啊,删掉啊,咱们在这给他这个把之前的代码的话给它删掉了,直接。
26:42
这给他提选成我们最新粘过来的这段代码,那这样的话呢,你这个地址的话,你可以再改成刚才那个什么内网的那个地址啊,我们内网的这个数据库的这个地址是这个的,所以我再给他再改回来啊,还是给他改成这个内网的,然后再就是我们的这个3306,是不是3306保存完之后,咱们重新的给他部署一下,让让这个小程序单发起一个请求啊,咱们来进行一个测试就可以了。
27:15
好,我们在这里哈,进行调用的时候啊,部署成功了,好了,我们把这个地址的话进行一个什么呀,我们给他点开,我们给它复制一下吧,就这个地址好了,复制一下来到咱们的小程序端,咱们把之前这个local host9000地址换成这个新的这个地址data怎么给它改成这个客文555啊,然后咱们给它改成5000岁,哎呀5000岁的都行哈,然后telephone phone OK,接下来的话,咱们来一次posts的调用,好点击这一个注册用户看一下返回一,诶这一会儿的话呢,我们这个走的可是咱们函数啊,这个云啊函数的啊,咱们来看一下数据库中有没有最新插入的这套数据,哎,有了就说明我们已经成功了,所以我们的云函数的改造的话呢,也是非常成功的。另外你看这就是课文所讲的这一套东西啊,就是我们真正的打通了从小程序端到server list啊,我通过小程序端可以get或者pose的方式把我的数据。
28:15
传给我的server list,我的server list分成了试件函数和web函数,怎么get和POS的方式接收两种方式我都会了啊,大家在这里需要仔细点注意一下,那最终在通过我们的马或者to这个小模块而连接到我们的云数据库中,进行我们的增删改查然咱们只做了一个增,那接下来大家可以自己去试一下那个山,还有我们的这种更新操作选取就非常简单了,对吧?哎,这样来说我们这条路就算真正的打通了,OK,那在最后的话呢,可能在这里多啰嗦一下啊,其实刚才我在替换这一块的时候呢,有人就会发现啊,就是我替换上来之后,我还得再把这个外网环境再给它改成这个内网环境,有人可能就会觉得,哎呀客们这个挺不方便的啊,尤其这个内外网环境,我这个脑子一下的话,我也啊记不住啊,一会这个一会儿那个的,我也这个不好记呀,啊所以有时候呢,我们可能会。
29:15
借助一种叫环境变量的东西啊,咱们只需要把环境变量一切就可以了,那就不用再记住说幺七二点二一,还有刚才那那么长的那个地址了,所以用环境变量来去做就非常方便了,对吧?啊所以在这可给大家扩展一下,就关于咱们云函数中的这种环境变量的一种设置方式啊,这个环境变量怎么去设置,你可以把那玩意写死在这里,你也可以通过设置云函数,从云函数中啊,咱们读取它的环境变量去用就可以了,来咱们来看一下,在这里点开这个函数配置这里啊,咱们来找一下哈,呃,我们在这点击这个编辑这个工作,编辑这里的话呢,往下走,往下走,你看见了吗?这块有一个叫环境变量,这个环境的变量所有的值可以通过一个叫process.v就是environment这个方法进行获取,那所以咱们在这里的话就可以设置环境变量,我设置一个什么呢?A,然后value值是个一,你将来就可以来。
30:15
找到这一个啊,这个长度不小于两位,那我就多写点吧,比如说是我们这个deb的这一个什么呀,Prod生产环境的这个什么,Hosts的地址是什么,然后的话呢,对吧,再就是DB pro prod,然后我们的这一个什么呀,这个part的端口号是什么,然后我们再来一个B,然后我们这个是我们的test,这个host是什么,然后我们再来一个什么呀,DB,然后对应的我们这一个test,我们对应的这个part是什么啊。好了,然后咱们再在这里再去写一个我们这个啊,里面有一个值就叫做prod,然后我们给它写成一个一,也是我们部署到这里的话呢,就已经属于上线环境了,所以我们可以这样,我们可以在写代码中直接就写一段代码,如果判断有prod这个环境的变量,咱们就让他走prod host的prod power的端口号对不对,如果是没有prod,因为我们在本地开发中肯定我没有写入prod这个环境变量,所以就走test host和test power的这一个端口号,你看这样是不是就很聪明的这种做法呀,那咱们把那几个端口号就提前写死在这里面,比如说我DB pro,呃,Prod host的,来我们找一下哈,生产环境下的话,咱们用的就是内网地址了,就不足外网地址了,所以这个内网地址端口号就是3306站到这里来,然后就是测试的这个host的话呢,我们用的是外网地址的,我们站到这里来,然后我们在这里的话呢,来复制一下端口号66600,这个放到这里来,OK了,各位可以看。
31:51
看一下这就是我们所设置的几个环境变量,DB prod host这个啊,我们生产环境的,还有我们测试环境的这个端口号和地址都写在这PD啊,我们单独设置了一个配置,我写在这里,好,接下来你把它给保存一下就可以了,来点击保存之后,好,然后在你代码中怎么改呢?列位啊,你看你这样去写代码啊,我教你去写这一块,在这里的话呢,咱们把它给写好啊。
32:19
好了,然后一进来之后的话呢,我们可以在这里的话这样去写啊,把这个给它先叉掉,先叉掉,老是检测我的这个部署的这个值不太一样啊,我就不管它了,然后我在这里我可以通过什么呀,列外,咱们要想获取里面那个值,你记得我刚才试了一个prod吗?怎么获取呢?就通过这个方法哈,Pro它是固定的哈,通过process.ev然后咱们来获取这个值就可以了啊,直接我们中括号的方式,Prod就这个,也就是说我们如果部署在我们的服务端的话,列外如果你部署的服务端,那这个值就是一个一,如果你部署在我们的这个本地的话呢,那咱们是没有设置这个prod环境变量的,那就是个零,哎,所以我可以在这里的话设置一个什么is prod这样一个标志位,我们拿到这个值,比如s.env env啊,然后我们把这个值咱们给它取出来,来,Prod这个值给。
33:19
它取出来,然后我们在调用这个什么呀,Get的DB con的时候,我们把prod这个值啊,咱们给它传过去,咱们这样如果这个值是真的情况下,咱们给它写一个prod,如果是一个假的话,咱们给它改成一个是个什么呀,Test,然后我们在这里把这个prod给它传过来,列微来看看这块,你想一想,现在如果我就在云上来执行这个代码,拿回来这个值是一个一,因为咱们刚才设置的嘛,说如果是一为真,所以说prod啊就被赋值上去了,所以在这里我们get了利比卡,把这个值传进来之后,我们在这里接收到这个值,Stage s sta s sta思意思另位还记得咱们那几个环境变成了规律吗?来,忘了,我再给你看一眼,规律是DB prod DB test,所以我把那个prod还是这个test的,咱们给它传过来了,所以我就可以在这个地方呢,诶代码中,哎,咱们就给它改造成这样的,到底是哪个值呢?咱们可以这个。
34:19
process.env然后我们给它改成这个写法来,你不要写死呀,你是根据S传过来的嘛,两位可以想一想,诶,S stage哈,不是s stage stage传过来的,那你自己想一想呗,你在这里啊,呃,一开始这个值为真的情况下,那拿到的是prod prod传进来之后,我们在,呃,我这个我好像改的是这个盖啊,差点出问题,我应该把这个post的也得给他改造了,要不然一会测试的时候还得出问题,把这个post咱们给它改成这一个啊,Is prod,然后咱们把这个is prod这个值一样的给它穿过来,那这样的话呢,如果为真,就是prod穿进来之后,DB prod host是不是就是能找到那个环境变量,所以你就把这个东西,哎,按照这样一个规律的话,都给它给替换一下,这个就是我们的这个泡的prot泡的端口号,所以这个东西一定得统一的这种规律才可以这样去玩,对吧,Prot,所以这样的话呢。
35:19
就把这个东西给拿回来root,你也可以设置成环境变量,Password也可以,只不过咱们这个开发也好啊,测试也好,咱们都是用了一个数据库,只不过是一个外网内网地址,所以用户名呀,Password呀,德贝的名字呀都是一样的,就这块不一样,所以如果是云服务端的话呢,云service release就是prod,那这样的话呢,就拿到了是prod后侧的那个内网地址prod portd,就是3306那个端口号来保存之后测试,保存完了咱们可以来简单的部署测试,咱们看一下这个是不是还一样的好用呀,在这个我们把这个POS的这个数据再给他改一份,那咱们看下到底可不能到几哈,六六六六千岁了啊呀大在这里555,然后666保存之后,好,接下来我们再来进行一个什么的请求,这块已经部署完了嘛,点击这个注册用户之后,返回音色的一,然后这个时候我直接来刷新一下我们这个数据库,看666过没过来呀。
36:19
好了,那这样我们把我们呃语音上的这段代码ctrl a ctrl c啊,我们保证跟我们的这个本地的一模一样,对吧?哎,咱们给个ctrl a删掉之前呢,拿过来,呃,也就是说我们在我们的本地开发中,这个代码跟我们的服务端代码就一点不用变,光依赖环境变量不同啊,就可以走不同的这个端口了啊所以我们在这个本地中啊,也得设置一下环境变量,当然在这就有很多方法了呀啊课上挑一个最简单的,就是我临时啊设置环境变量。因为在Windows中啊,你可以临时设置环境变量,也可以永久加上一个环境变量,当然也可以在运行咱们这个node项目的时候,经过一个cross in为这样一个小的模块来动态的设置环境变量都可以,那可能找一个比较简单的方法啊,就在这里的话呢,你再启动这一个服务的时候,把之前那个刚才给关掉了哈,你需要通过一个什么命令呢?Dollar服env啊,如果是在咱们power shell这块Dollar服env,你需要把刚才那一个在这里配置的,因为是测试环境嘛,你把这个给它粘过来。
37:25
诶,我这块的话是不是多加东西了呀,我们set,因为DB test啊,这块是一个等于啊DB的等于我们后面这个地址,OK,我们在这里一回车啊,我们这个地址的话好像有点问题啊,把它给换成加上引号,因为它这个值的话呢,需要加个当成我们的字符串,诶字符串设设置,咱们给它改成这个什么英文的这个字符串的一个设置好了。OK,这样的话我们回车设置好之后,然后我们再把这一个哈,DB test part这一块咱们给它拿过来,哎呀DB test Dollar负env Dollar符Dollar设置不上去了,我们重新的给它敲一下哈,Dollar符env啊,然后我的冒号把它给粘过来就行了,好,设置完了之后呢,那接下来咱们可以试一下啊,你在这里的话,你可以显试一下你此时的这个这个pro in v,那这样的话,咱们在代码中咱们给它写好,所以我们在这个地方啊一请求的时候呢,我给它打印一下,此时这个pro inv大家可以看一下啊pro process.env OK,咱们把这个代码呢,先暂时的这块给它注释掉,所以在小程序端发起POS的请求的话,光打印这个,你看设没设置上这一个环境变量呀,来点击post,我改成了这个9000的这个地址的哈,Posts过来之后打开我们的终端怎么来啊,没运行服务器。
38:54
记住吧,N no的杠de我们的APP好走起来之后再小声的来一个走好,咱们来看一下在这里打印出来里面有没有咱们的DB test的后的和DB test的泡,你看都有,都有了之后啊,但是咱们故意没设置prod,没设置prod就会导致这个获取的是一个假,那假的话呢,就是走test,那最终也能够好用是不是,那是就把代码给它放出来之后,咱们在这里把小程序中给它改一下坑啊,这个888,然后在这里改成这个8000,然后改成这个啊TELEPHONEONE888999 OK,保存之后咱们来最终的测试一下,一点完之后,这块音色的一成功了,让咱们再刷新一下咱们的数据库中多没多一条数据啊,如果多的话,就说明我们刚才这一次也成功了啊,所以在这里哈科最后所扩展的这个东西啊,它的本质就是依赖环境变量的一个设置啊,就是我们。
39:54
云函数,你可以在我们的云端设置环境变量,这样的话呢,我们可以与不同的环境变量的话呢,咱们可以走不同的分支啊,你要是你把这个环境变令给删了,它不就走测试了吗?这个环境变一删就走测试分支的啊,你要不删的话就走咱们的PD这样一个分支,但是人家在实际开发中人这个test的呀,和这个呃,Provide还有UET几个环境,那是连的几个不同的数据库,包括用户名,密码对吧,那都是不一样的,咱们在这就是实物的简单的本地和远端的一个开发所做的这样两个啊,所以在服务端设置好环境变量之后,在本地也要设置环境变量,这样的话呢,我们可以通过它来做我们的开发啊,咱们区别开发,但代码是一套光依赖环境变量不同,它可走了,就是我们的test的后四的test的port和咱们的prod后的和prod这个port,当然对于我们Windows开发中,Window也可以通过其他方式来动态的设置这种环境变量,大家可以啊自行的去摸索。咱们在这里。
40:54
就是给大家来提这样一个小小的一个扩展的建议,好吧,好,最后的话呢,我们有一个调休工具,这个东西也是科哈在这好不容易从文档中发掘的,就是你这个环境变量一点点设置,有没有觉得很麻烦呀,比如说我现在也要给它设置一下环境变量,那这一会儿这几个函数都要设置一遍,我们在这一共有这几个呀,八个吧,我的天呐,客们这八个都要设置一遍,太麻烦了,那我们有没有更加方便的方法可以给他们设置相同的环境变量呢?其实是有的,怎么设置呢?你看现在是没有的,要不然你就编辑,然后编辑八次,对不对,每一个都把那五个都给加进去,很麻烦,所以我们可以在这里用一个非常方便的一个调试小工具,也是咱们腾讯云自带的,他也知道麻烦呀,啊,他也知道麻烦呢,然后在这里咱们找一下,在下面这块可能留了一个链接,快速设置环境变量的一个接口,也是咱们的这个腾讯云给提供的。
41:54
要注意这个接口是真的真的能够作用于你的产品的,所以你发出这个请求的时候呢,它真的会对取当前账号的临时的这个K,对于当前账号发起操作,因为我现在还是登录状态的呢,对不对啊,是真的会发起操作的,然后这一块的话,就这个接口,它叫什么更新函数配置的一个接口,你可以选择你们大区,我选择当时是北京,对我的这个呃,云函数都是在北京区的。
42:20
函数的名字,比如说你想给谁加下,我想给这个get类似的啊,From s,呃,这个一这个价,然后呢,你在这里啊,这个写好都对应好,一定不能出错啊,然后再签下来这块,这个环形变量,我就随便写一个A1,然后再添加,你就把你这个东西都写出来,大说这不还在一个个敲吗?我想说的是你敲完这一遍之后,你可以利用这个接口,你只要改一下这个名字,就能把这八个都加上这样一个环境变量,能明白课文的意思,A1B2吧。好了,接下来看啊,我现在只要在这个在线调用这块来发送一个请求,它就真的会往我的华北,呃北京地区调用这个方可式云函数,给他增加这样两个环境变量,A1B2走发送请求走尼在这里,他为了确认我的账号安全啊,他非得让我扫一下码,那没关系哈,我在这里的话呢,就扫码,然后确认一下,因为这个是真的对你的账号发起请求的,这个是很严肃的啊,不是在闹玩的。
43:20
好了,后文扫完了,这个请求的话呢,已经发起了,诶他说我会找到我的这个环境,这个名字,我看一下是我的这个方格的名字,我给写错了吗?来再找一次发送这个请求,未找到指定的这个function,呃,Get类似的北京区,他找了一个是我的这个默认的这个区,那我得把这个给他改成咱们这个T的区,对吧,他找的是我的默认的,所以我看一下在这里咱们当时是管,呃管理的话就是在咱们这个命名空间是一个test的命名空间的,所以坑在这里选好命名空间test了之后,好再走一次,这次应该就没问题了,真的设置成功了嘛,对吧,返回了一个request的ID好不好用啊,咱们可以看一下这里,来再点一下这个之后,咱们看一下那个环境变量有没有被设置成功呀,看一下我们的函数配置中有没有设置一个A1B2的环境变量,果然有了,所以说照这个方法来的话,就是你可以依次的把。
44:21
这几个名字都给传过去对不对,这个是get我们的S2这一个,然后再来到这,你这就方便了,因为你把所有的环境变量在这里写了一次之后,你接下来就可以只改函数的名字,然后这一块选好命名空间,别弄错了哈,Test命名空间,然后接下来就是写好这一次,然后就每次发请求去改一下子,批量的会设置多个,那这样的话咱们可以检查一下我这个上面是不是也有了A1B2这个环境变量了,来刷新一下啊,刚才在这里咱们没刷新好,刷新一下是不是也有了这一个了呀,所以大家会发现这就是咱们通过这种API的这种接口啊,也是腾讯云给提供的非常方便的啊,批量的去设置环境变量啊,一个云函数如果需要设置,咱们手动的编辑一下还行,但是如果十个八个的都要设置的话,你就不如用这个API这个小接口,咱们直接来一个环境变量的一个设置,这样的话呢,就会哎,一次性的。
45:21
啊,把整个这个都给设置上去,你十个环境变量一次性全设置上去,再换个这个方法的名字就可以给其他的再去设置,所以大家把这个小地址的话呢,可以通过文档中的这个链接找到啊,快速设置环境变量的啊,不二之选好了两位,这一小节咱们差不多了,可到这里是真的把我们的小程序到serve类传参对吧?到serve类接收参数,最后再怎么存储到数据库的这个过程,并且最后依赖于环境变量能够动态的分开本地和咱们的远程开发,咱们给讲完了,好了这一小节咱们就到这儿。
我来说两句