00:00
一个项目我们要做一个DF的话,到时候我们肯定是要自己有一个自己的服务器,Sor要起来,然后把这挂上去的,对吧,那这个呃,大家都都清楚吗?之之前是不是都讲过。我们简单的还是来就是再实现一下这这个内容吧。那比如说我们在这里,假如说我们现在还要就是把它真正的部署到服务器上的话,大家可能知道我们就得建一个,比方说如果用node去构建服务器的话,我们就建一个3.js,对吧,Node是可以做服务器的。那这个服务器怎么写呢?呃,我们就用这个。这个应该是官网上的一个例子啊,我们敲一遍快。HTVP我们先引入HTP的模块,然后引入这个文件系统的这个模块这块。
01:00
FS。好,然后我们把URL这个,呃,地址的解析这个包引入进来,URL这是我们基本的这个引入的东西啊,然后我们就创建我们的服务器HTTP点呃,应该是叫create对吧?好,然后里边就是一个回调了。啊,我们就按传统的形式写吧,方式这个就是。大家以前写过的同学肯定就会非常熟,对吧,里边就是一个request,一个response,比如说简写啊,就是这个方便一点,Req和S的代表这个request和response这两个对象,好接下来我们在这个函数题里边,函数题里边呢,肯定就是说我们要去就是解析这个当前的请求,然后去做相应的响应,那我们现在最简单的就是什么呢?我们直接访问这一个,呃,静态的路径地址路径的时候,我们把这个就是静态的这个页面直接作为内容返回回去。
02:23
作为response返回回去,那我们就显示了这个内容,对吧,这就是最简单的一个服务器的一个做法,那我们当然就是要去解析一下我们的路径了,那pass name。等于URl.pass对吧,那这个pass的时候,我们要传进去的肯定就是request里边的,呃,URL对吧,然后我们做一下这个URL的pass,然后它里边会有一个。应该会有一个pass nameme啊,这个pass nameme就是我们真正这里就是要要打开的,我们后面那个路径的那个名称,好那么接下来我们去我们先consult.log一下,看看有没有对啊,点log,然后。
03:20
呃,这就是request。一个。某个文件对吧,加上。加上我们就是提示一下,我们从哪里来到的,接收到了来自哪里的一个请求。那接下来的话,我们就是要去读取我们这个对应文件里面的内容了,对吧。FS.read file。
04:02
S,对吧。然后我们。呃,然后我们后面跟上一个回调方式。呃,这个我们就可以用这个回调的模式啊,Data error在这个里面我们就要去做做处理了,对吧,If error。点log error,那else我们就去,呃,我们这个其实是啊,我们就先先这么写啊,就是先做一个简单的这个response里边我们就要写内容了,对吧。
05:00
大家可以。呃,我们应该是这里就能拿到这个data啊,data.to string,好,最基本的一个实现就是这样啊,当然我们这里应该还得写头的,对吧,Response right hand,去把它的响应头写上。呃,这里我们去给一个他的head的响应码是200,然后我们去给他的content type。作为。文本HTML文本来显示对吧,这就是我们这样的一个过程,好,呃,大家可以看就是,呃,当然下面的话我们应该是得。
06:00
就是要要启动这个这个服务器啊,有点忘记这个这个是在哪里去启动了,看一下。看一下网站啊,应该是大家随便在网站上都能够看到这个这个note的这个服务器的写法,所以我这里只是随便找了一个教程,看note官网。啊,我们随便整一个教程吧,菜鸟教程可能就有我们这样的用法啊。我们看一下它的web模块。其实我们就是想要跟大家说啊,大家可以看到这个其实是就是这样的一个用法,它的处理要比我们这个要要复杂的多啊。好,我们这里passname写错了啊,这个是要选一个substre。这个记错了,这个是因为因为我们的pass STEM有可能是一串对吧,有可能不是一个,所以说他是要去选一个substre,然后把它解析出来,呃,其他应该没什么问题对吧。
07:12
对,然后最后我们就是就是发送这个响应数据,然后去启动这个端口就可以了,就是大家可以看到这个是就是我们常规的这些做法啊。呃,这里,然后。点。这个直接就按了吧。应该也没有什么别的做法了,对吧,大家可以就是随便找一个教程就可以把它随便就是实现一下就可以了,当然这边大家可以起那个自己想要监听的端口,哎,一般是8080,大家也可以这个随便给对吧,8888好,这个我们把这个写好之后,这个叫做server.js。
08:05
呃,我们还是就先放在桌面吧。就放在桌面,那我们启动的时候,这可能就稍微麻烦一点,我们得到桌面去啊,User桌面会路径比较复杂一点,好那么我们启动一下我们的server老师就报错了。啊,因为我们这里边根本都没有那个,就是对应的这个包包管理工具,对吧,诶块是不是写错了,我看一下。QUI,你看这个很容易出这种莫名其妙的错误,好,那这边应该就已经启动我们的服务器了,对吧。
09:01
那启动服务器之后,大家看一下我们要访问的时候怎么访问呢。怎么样去访问这个服务器?我们启动的应该就是在local host对吧,这是我们的域名local host,我们的端口是8888,然后我们现在去访问一下刚才我们的index.html,看能不能访问到,好像没有访问到啊。HTTP8888INDEX。看一下这边,诶,这边好像卡卡住了这边,然后这边直接报错了看一下。
10:05
嗯。Open这个的时候报错了。我们应该没有用到这个东西对吧。嗯,还有那个图标对吧,对。我们这个图标应该是在哪里用到的?呃,这个反正不重要了,这个其实就是只是说我们要在本地起这个,就是我们本地起一个服务器,然后试图要去访问我们的这个index hml对吧?就是我们希望在真正自己的服务器上去看到这个这些东西,所以我这里觉得会比较奇怪,我们其实应该没有用到这些东西啊,是吗?大家都遇到过是吧?这个是浏览器默认会加载这个事情吗?那后来是怎么解决的?
11:12
随便下一个是吧。改一个文件后缀。添加一个,呃,添加一个是吧,这个呃也可以啊,我们那那我们就直接去把这个创建一个这样的一个文件。这其实前面我们启动的时候,他并没有报这样的一个错,看一下。
12:06
好像这里还是有问题对吧,这里是正常了,但是没有对应的东西出来。啊,所以我们这个看起来是没有写到我们真正的这个,嗯。觉得是哪里的问题,这个鼠标怎么回事?呃,我们在这个过程当中,可能解析是会有问题的啊,我们来还是认真来看一下吧,刚才我写的有点快,我们严格的对照一下,找一下网上的一些note教程,看一下刚才我们看的哪个这个是吧。
13:00
我们是哪里写错了吗?读取了一次。Create server,这个是正常的,给一个回调。然后我们会把URL里边的。我们把URL解析出来,然后就成一个pass。啊,我们这个变量定义的跟他不一样啊。好,我们这个其实是读完文件之写完之后就应该发送这个响应数据了,对吧,大家看这个确实是没有注意这一点啊,其实我们应该是在这里就去发送这个响应数据了,而不应该等到就是这个同步的读文件读完之后就就是我们是应该在回调里面去处理这件事情,去把我们的页面渲染出来,而不是等待就是这个同步读完了之后就去渲染页面,所以说这个步骤是有错误的啊,大家实现的时候也得注意一下这个。
14:21
就本身大家可以看到,就是我对这个note其实也不是特别熟,像这种东西我们平常大家如果要用的话,可能直接就是用一些框架,对吧,这个是其实是note里边原生的HTTP的这些组件可以搭起来的一个服务器,但如果用框架的话,可能就不存在这些问题,但是用原生的东西可能会让我们对它的就是理解的东西可能会多一点。看看现在能拿到吗?但是好像。
15:00
没有拿到内容对吧,那说明我们写的还是有问题。再看一眼。可能我们文件解析的时候出了一些问题。Redfi。哦,它这里是大家可以看到它是用异步的方式的。没有用同步的方式对吧。呃,那我们这里大家说这里用同步跟异步会有什么,会有什么差别。同步会阻塞在这里对吧,但事实上。从我们直观的角度来讲的话,应该也不会有。太大的差别,我们把这里还是改一下吧,先按照他这种写法来写。Read。Right handad。嗯。
16:01
有同学看到有问题吗?看起来没什么问题啊。啊,你是说就是应该给一个response是吧,哪个啊,你是说就是这个时候没有给他返回对应的东西是吧?呃,但是这个这是在我们读这个文件有错的时候才会出现,如果我们要是读取正常的话,其实应该不会啊,所以看起来刚才我们确实是读取错误,所以我们先把这个写上吧,那就404吧,照着他这个写。Contact type。这个都是一样的东西啊。哦,Else。
17:12
经常会出这种不注意的一些小错误。好,我们再启动一下。OK哦,这个我没有打印信息,所以启动起来大家也不知道怎么回事,对吧。哎,现在可以了,好吧,所以刚才大家可以看到,就是我如果用同步的这个方式去读文件的时候,确实会有问题的,就有一些东西确实还是不能自已想,当然还是要用这个现成的方案去做,那现在的话大家可以看到我已经不是直接去读取我们本地的HTML静态的这个页面了,而是启用了一个就是我们自己真正的服务器,那如果大家把这个东西直接部署在自己的云服务器上的话,那相当于我们远程就真正的可以访问这个这个DF对吧?好,我们现在看一下它的这个状态应该是正常的吧,Vote,对。
18:16
是可以正常加上去的,对吧,所以这就是我们大家可以把这个所有的东西综合起来,我们学过的前端、后端,然后和现在的区块链相关的知识,我们的合约的撰写,然后和这个部署,然后之后怎么样用WEB3把我们的前端跟它交互起来,这就是一个完整相当于把所有东西都打通的一个项目。
我来说两句