00:00
来呃,上午呢,我们已经把这个界面呢,能够去都搭出来了,下面呢,我们要去做交互,就说白了,做前后的交互,要实现一个保存,我们来看一下。那我们先这里就涉及到前台后台都需要去编写,那我们这里呢,先去把后台去写一下啊,后台需要有一个路由接口用来干嘛了,用来去更新用户信息的,实际上我们是不是要提交一些新的信息让他去更新了,来我们来去做一下那把那个接口文档。来给大家打开一下。因为我们现在要去定义接口是吧,嗯,就这个更新用户信息,它的这个地址呢,是叫斜杠update啊,什么方式呢,Post。
01:05
提交的参数呢,是这些,但是啊,不是肯定都有这些可能是有,譬如说举个例子,有这三个对吧,也是有可能的啊,这是所有可能的参数。都在这里。这是返回,有一个成功的返回,有一个什么呢?失败的返回。来,我们来看一下怎么了解打开我们的后台应用。找到我们的路由的定义位置。那下面呢,我们要去定义一个叫更新用户信息的。啊,路由好点。哪个方法?Post吧,因为刚才说了我们是post,路径是多少斜杠update在这里面已经说的非常清楚了,是吧?啊写个update好,那下面呢。
02:14
是我们那个处理请求的回调函数r EQ re ES。有没有看到,好,那下面呢,我们要去更新的是某一个用户的信息吧,那我先得得到一些数据,得到一些数据啊,还是要得到提交的用户数据。得到提交用户数据,这里面啊,刚才说过了,有这样一些。是不,这里面的这些东西是不是都在我的那个IEQ的什么属性里面,是不是玻璃对吧,那其实我就可以把它看成是不是个user。
03:09
能不能?看到我只是啊,这个user里面有下划线ID吗。没有,但是得说一下,我去更新某一个用户需要什么。是不是需要ID对不。这个人不懂,必须ID,不然的话我去跟谁去啊?那ID在哪了?ID在cookie里面,这意思吧,也就是说我前面是不是已经将优者的ID以优者ID的形式存在浏览器当cookie里面的,Cookie是有一个特点。啊,存在浏览器,那浏览器那什么时候用啊。对吧。
04:00
他会发请求的时候会自动携带过来。那也就是说我们这个时候,我们此时再看我们在服务下编写,除了得到它这里面没有U的啊,我们还要干嘛去了,我们其实应该先从啊请求的什么呢?啊cookie中得到什么user ID。这个能不能懂,去取U代,只是说用什么语法的问题,你要知道肯定是在IEQ里面,这个能不能懂。来大家看一下,看这语法看没看懂。IQ,什么cookie?那这里面就说点再点UID,我问大家,我们前面说过,一般后面多加S不是对象就是数组。
05:03
对吧,很有可能是宿主,但他是宿主吗?不是是对象,为什么不是数轴是对象呢?大家知道一个cookie就是一个介质,对一个可以对应Y6对吧,一个名称对应一个值对不对,那也就是说怎么理解这一个。它是不是我的请求携带的所有cookie的一个集合的容器,对吧?而这个容器现在什么类型对象?那是因为我们的cookie就是毽子队的形式。也就cookie的值才是我们要存的数据,对吧?那个K是它的标识名称,这个能不懂理解是第一关键啊,那也就是说我要从中去取到UID,怎么取呢?
06:01
Q,点什么cookies,这是一个对象。点什么呢?也就是说我这个cookie它对应的名称是什么名字,前面我放的时候就放的什么UID。那此时必然是UD。对吧,好,但是大家知道啊,Cookie有可能被删掉。对不,所以我要再查询,根据我马上就要去根据这个ID去查了。在查之前,我直接就可以来个什么判断。什么意思?那也就是说,如果不存在。干嘛?嗯,你说我现在不存在这个ID cookie,我能去更新用户信息吗?不能。
07:04
对吧?那我是不是得直接返回一个提示信息的结果,对吧?这个能懂吗?好,那我怎么办?res.send还是一个对象扣为。你你不代表好的吗?对吧,再来一个什么干嘛呢,行先。登录。那不是你没登录,你就想去更新那个用户信息,这明显不对嘛,对不对,这个能不能懂。好啊,这是这一个,那我一旦生了,我还需要往下走吗?那怎么样标识不往下走嘞啊,还有一种搞法诶。
08:09
我就洗一条鱼就够了呀。其实我的结果是什么?不,我,我不需要,我就是要结束。可以吧,这条语句啊,这条语句本身来说,你也是先执行完这条这个表达式吧,就return这个表达式,这个函数,这个方法调用的结果对不对。啊,主要是我想结束啊,你当然你也可以这么想。对吧,或者写一个把所有的代码都写的什么,下面是不是写不也结束了吗。这个能懂吗?啊,你也就你肯定不能这样搞,你不能这样搞,这样行吗?不行,你已经剩的了,你还往下写。那肯定会报错的,不行的。
09:01
所以我就比较简单,直接来一个。哎,结束了是吧,这一不就结束了吗?好,下面是不是说明就有。那存在我应该干嘛去,是不是根据优者ID是不是去更新,你你只有用ID查到,查到以后就更新嘛。能不能更新,嗯,对应的。优者对吧,更新对应的优者啊,是数据库里面的优者啊,数据库的优者文档数据,这个能理解吧,好,这一个是不是我提交过来的U,这里面是不是还没有,这里面没有ID吧,要记住啊,没有什么下方ID,嗯,这个要注意啊,是没有下方ID的。
10:02
好,下面来,我们要想去更新数据,得拿着一个什么呢?User model,诶,它有一个。方法叫什么?Find by ID and of,非常好的一个方法,是不是好传什么呢?首先你要传一个条件过去啊,不是传UID,下ID,因为名字叫下ID,冒号U者ID。对吧,接着指定你要替换,为什么呢?你这哪更新哪些属性呢,传U的就行,其实你查IQ点玻璃是不是也可以。可以吧,好,接着哪一个方写I,嗯,不是I,接着是一个结果,这个地方得特别有意思,我那时候写过一个老的游者。
11:06
能懂不啊,就是因为那个为什么要返回老的游者,是因为你,你要想想看啊,他把老的user者给你返回,你还有机会操作以前的数据吗?你还可以知道以前是什么数据吗?不可能的,因为他在库里面已经被替换了。懂不懂,他相当于给你最后一给最后一个机会,让你看他一眼啊啊,你要不看就拉倒,你要看那你就看一看。这个能懂吧,嗯,好来,那下面呢,下面我们在这里呢,这里呢说一个说一些事情。这个一定会有值吗?一定吗?他是先查再更新,万一我说过说过极端例子,其实这种情况呢,很少见啊,万一诶查不到怎么办。
12:03
也就是说,这个假设这个库的数据被人篡改了。也就是说,没有对应的U。你能更新到不能,那就说你是什么事了,大家看看啊,这意思是如果哎是这样的。这样说明什么?说明我要想去,我有我,你传播的U在确实传了对吧,但是我又找不到它对应的优者。啊。那说明你的这个库给数据,你的这个优质ID版有问题是吧,已经不对了。那我能正常的说你,你成功了吗?那不可能嘛。是吧,那你想这一个cookie。这一个cookie数据还有存在的意义吗?没有。这个能懂不?这个库是个坏数据,说白了。
13:00
是吧,我是不是得想办法去通知谁去通知浏览器,哎,需要把这个什么cookie是不是干掉。这能理解吧,因为它是坏数据吧。删除啊cookie啊,优质ID的cookie。这个怎么删呢?试一试吧。嗯,这个这个地方,这个地方关键是关键,关键就是一个事情啊,如何呃来去删除这个货品啊,这是一个,这是一个比较严重的问题啊,后面再返回一个,如果删除完了以后,再返回一个提示信息,对吧?啊返回就返回这个得了。就是返回啊,一个直接返,返回一个提示信息。
14:05
关键就是如何来去是吧,告诉浏览器。是不是去删除啊,对不,那这个怎么做呢。我好像忘了怎么办好,那我们查一下怎么查了是不是啊来看呢。我也不知道啊。差什么?啊,曹操。Man故事跟man故事有关系吗?应该没有吧,对吧,应该是没有。现在我们是不是在后台路由里面去操作cookie数据是吧?我们用的是什么库,Express定义的路由,那应该跟express有关系啊,先写个express我也不知道啊,是真不知道啊啊。
15:06
啊,我现在要干嘛去啊,是不是删除cookie对吧?啊来删除cookie删除邮件。那么看到啊,这一个搜索最关键的就是写关键字。嗯,就搜索一下关键字嘛,啊上。好,他说看这里啊express,呃,有有超什么cookie与绘画,我现在就是要是删除删除指定QK有了吗?啊,这一个已经有了是吧?啊,我还说想搞一个更加。啊说删除指定cookie,因为我现在的一作用是要去删除指定名称的cookie,对吧,那如果有的话,那我们直接来看找到那个呃,Cookie的位置啊,就删除cookie,把cookie这里先匹配,看看哪个位置有对应cookie操作的,对吧。
16:08
啊,最后刚才大家应该是看到了一个有一个叫什么来着,叫clear cookie啊,那我搜一下刚才那个他的其实那个摘要里面是不是已经有啊。是不是有?能看到吧,啊,这个时候谁来去删的,哎呀,为什么,是因为我们说过了,我们是要告诉浏览器去删你不,你不得通过is去告诉浏览器吗?这很直接的吧,啊所以啊,就是他看来大家的能力还挺强啊。来。叫is点,肯定要传UID。能懂吧,能懂下面返回一个提示音,是不是还是这个。
17:03
一样的呀。啊,这个时候你没关系,因为就是if else能不能看懂,好下面else是什么。说明是已经更新成功了吧,更新成功了,这个时候我们最终也需要向服务器返回,只是我们这一次返回的这个对项里面扣的为接零,接着了我们要返回一个什么数据,是不是在date date里面的值是个什么东西有着。好好啦,那现在你说我将他反回行吗?肯定不行,对吧,那我将它返回行嘛。这个不行,因为这个里面没有U,没有太。
18:05
这个能不能懂啊,没有那些东西,这个咋办呢。这一个得在它的基础上再用啊,这个地方再说一下啊,嗯,把它给它覆盖掉是吧,也就是说我们可以用一个三点运算符。能不能,但是我后来测了一下三点预算服在后台没法用,就特别特别让人受不了的事情是吧啊。这咋办呢?是吧,那这地方其实有一个有一个ES6的语法啊,有一个S6的语法啊,大概说一下什么一个语法呢?来看一下啊,其实也非常简单,就是object有一个方法叫S。它是用来去做啊,一个相当于做对象合并。
19:03
就什么意思,我有比如说举个例子,我这里面呢,可以传N个参数过去,传N个对象过去。就这个三个方法。可以长成这个样,譬如说我查OB加二,一,OB加二,OB加三,那它会把它会把什么呢?把这。把这几个对象的里面的所有的属性合并起来,组成一个大的对象,是后面的啊,是往相当于我创建一个对象是吧,先把这个对象里面的属性有点像的3.1上过,把它塞到这里来,接着又把它也塞进来,接着又把它伸来,这里面有先后啊,有先后的问题。也是什么意思呢,后面的有可能会把前面的什么覆盖掉。这个能不能理解啊,它会把它覆盖掉。那。
20:01
我该怎么做呢?大家看着啊,我先,我先。先做了一个,就是我从这一个相当于这个返回的这个O的U里面看,我写一写吧,我写一写啊写写大家能懂一点。啊,看到这里。我现在不是需要有一个有最终要产生一个date对吧。是吧,最终要产生一个date,那我要产生一个date了,我是这么做。啊叫object点什么呢?它不有一个方法叫吗?啊后面传的是一个可变参数N个随便你传,你传几个都行,它会去做一个合并啊,先做一个拷贝的工作啊,来看到我这个里面的属性肯定需要吧。这个能不能懂,就这个里面的数据肯定需要。
21:02
能懂吧,就这个user里面不是我提交数据吗?那不要有嘛,但这里面缺什么?上啊,譬如说ID。对吧,缺name user name还缺个type。这个能不能理解,其实就缺这三个数据,那我这个地方后面是不是可以去搞一个对象,这个对象里面刚好就有那什么。三个数据是不是就可以,而这三个数据这个O的U里面有没有。哦。有吧,那肯定有吧,而且是对的啊,那所以我应该干嘛呢?猜出来呀,下划线ID,这是一个use nameme,这是一个还有一个什么type pass what,需要吗?不需要等什么O的user是吧,我把这一个记住啊,这里面一定要是以对象的形式传过去,你不能说传承啊,你不能这么传那这么传那你挂。
22:14
行吗?不行,他是他是去做对象拷贝的,去对象,他首先他拷贝的同时做了合并啊,因为他可以多个对象嘛,啊,他可以传多个对象。相当于做了一个拷贝合并的一个操作。你现在这种写法就肯定不对,因为我这个是个基本数据,一般的数据,对不对,我要实现的是这样的效果。那也就是说我这个date里面。肯定有这三个数据吧,同时还有哪个数据?是不是还悠着你们信息,那杨硕老师,我能不能这么写?
23:02
其实这第一个参数对象和第二个参数对象,它们的它们的属性不重合,你看一下嘛,看一下接口,那你看他传的是这些信息。能看到,而这些信息里面有什么下划线ID,有user name或者type吗?没有,所以其实我们放在前面,放在后面有关系吗?没有,除非说有相同的,那这个时候前后就影响了。这样理解吧,啊,前后就有影响了,这个地方实际上他们因为没有相同的属性,所以呢,谁先谁后没有太大影响。那也就是说我们现在是不是准备一个啊返回的啊,有者数据对象对吧,准备一个对象,最后给他什么是不返回啊,这个不懂,嗯,好,这里面注意啊,也就是说我们整个这个接口。
24:10
有两种可能性,一种是成功了,一种是什么失败了,成功了呢,返回了一个优质给你对吧,那扣的我就不说了啊,就说重要的,如果失败了。返回了一个什么message给你,对不对,而这个message是不是应该到时候能够显示一个提示。听懂吧,而且而且大家想我如果返回一个这个数据给你,我会停留到哪个界面去。我会去哪个界面,对登录界面这个能懂吗?啊登录界面啊,这个应该要有有一点意思啊,你想啊,你你现在都提示你提前登录了,那那你还要用户去点击才过去,那多不好啊,对吧,你都已经很清楚了呀,啊好,这是这个,那下面呢,我们需要去把后台。
25:08
的这个接口啊,写好以后,保证它运行了以后啊,那下一步就是你要去干嘛呢,测试一下你的接口是不是好用的,这个很关键,能不能懂好来试一下。这里面呢,我们就要需要用谁。Postman看见了,接着了我们这个地方来看一下我们后台的数据,里面有哪些数据,先注册一个吧,不管那么多。注册个新的拉倒。来看下,我们现在需要去有一个新的接口,新的接口啊,把它去掉啊。来地址请求方式。接着需要去。
26:03
指定一个请求体参数对不对,这里面啊,好歹指定一两两三个啊,两个就够hand的是吧?啊我们一般是叫什么头像级。啊,假设头像一吧。我提交的都是些投像一图案,我们刚好的文件名,就这样的名字。好呃,比如说我们再搞一个,再搞一个啊,比如说sir。啊,就是薪水工资月薪多少钱呢?也就是说15K好。那这一个现在你说我们来想想。我们提交他是不是还需要去携带一个cookie,有一个优质ID的cookie的假设我要没带了。那是不是就会去提示一个错误信息来试一下走你。
27:00
干嘛请先登录拉,创酷成不了,你得先去干嘛呢?先去注册,我们注册一个新用户,保证他没有用户信息嘛,对吧,来注册一个新的body,哎,这不好改吗?来个九。可以吧,啊大神找你是不是做了一个新的,好把刚才的这个啊,哎,我看一下在新的推广里面看它啊,能不能啊,我们再来试一下这个地方头像一来啊走你。扣为零,诶但是但是我没有写我的对的好像没写呀,说明至少说明我们这个对了,对吧,我们看一下我们的后台,我们date是不是忘了写了呀,能不能说明是不是到这来了,你的工具还挺厉害的。能不能好来,我们再来画一次。
28:04
再发一次不就得了吗?有了没有,有了是不是我们的汉的头像一啊,我们放指定的一个是不是15K。可以吧,可以没有太大问题,那说明我们这个接口已经可以用了,把我们的接口保存起来。轻而易举的更新用户信息。选择一下是我们react项目,点击save。第三个接口是不是搞定了,这个大家去整接口的时候,因为我们后台也是我们写,所以嗯,尽量穿到接口文档去写啊好,那这个就完成。
我来说两句