00:00
好,那我们来看上堂课呢,我们写了一个例子啊,这个例子呢是note JS的第一个应用程序,那么这个例子呢,需要大家有几点需要注意的啊,第一呢,就是因为Vs code的默认情况下呢,它不是自动保存的,所以呢,当你编完代码之后,如果你看到这个地方有一个。这个点的话就说明这个文件没保存啊,你在运行之前呢,一定要确保这个文件是保存的,你再运行,所以呢,如果你CTRLS一下,你会发现这个点没了,那现在就可以运行了啊好,然后呢,运行的时候呢,大家也要注意,就比如说刚才遇到的问题,就是这个这个文件的位置和这个文件的名字都没写对啊,把它写对啊,再有呢,就是如果有些同学第一次运行出现问题的话,那么绝大部分同学的问题呢,都是这个问题。就你自己对照一下。无法将node。项识别为什么函数脚本文件啊,如果你的控制台,也就是说在这个位置报了。
01:05
这个问题的话,那么需要你做的呢,就是重启Vs code的,如果重启Vs code的还不好使,有的同学重启电脑就好使了啊,所以呢,如果遇到这个问题的话,用这个方式先试一下,如果遇到其他的问题的话,解决不了再问我啊好,那这个是啊,我们的。常见问题,接下来呢,我来说第二个例子,第二个例子呢,不要求大家会写啊,要求大家呢,就知道它是干嘛的就行了啊,所以呢,我们来看一下吧,这个是零二。新建文件啊好,然后呢,有一个叫什么他呀。我看一下这例子啊。他点TST,好吧,我去别的班的目录当中复制一个,他去。Project。
02:01
20FRONT no,他是不是在这呢,然后呢,给它改成。921 front node,那它行,好,那这说明什么呀?是不是说明我们的node JS程序可以像Java程序一样使用流的方式来读取本地文件呀,好,那这就是这样的一个例子啊,不要求大家会写,所以我们粘过来能够运行就可以了,然后呢,我们来读一下这每一段代码,这个代码呢,第一个这是什么意思呢?就是我呢,相当于咱们Java当中的inport语句啊,我引入一个模块,或者是我引入一个包,然后这个包里可能有一些扩展功能,但是用法呢,还不太一样,它这个块呢,把这个叫做FS的这个基本模块叫文件系统啊,File system叫文件系统这个基本模块。
03:00
文件系统模块好,引入之后呢,赋值给这个FS这个常量好,那这个地方呢,后面我们会讲这个常用关键字,那现在呢,你就知道我现在通过这种方式把文件系统引进来之后,我就可以通过FS去读取本地文件了,那么read file就是读取本地文件的一个函数啊,这里面接收两个参数,第一个参数呢,就是你读的本地文件它的位置在哪,那么这面呢,我们用一个相对路径啊,用一个相对路径点杠,就是当前目录下的差点TXT,然后接下来呢,第二个参数,它是一个函数类型的参数,所以第二个参数是一个匿名函数,这个匿名函数里面的函数题里面我们呢,就写什么呀,读取文件。之后我们要做的事情,那么读取文件之后呢,有可能发生两种情况,一种情况呢,就是读取失败,另一种情况呢,就是读取成功,什么时候会读取失败呢?比如说这个文件名你写错了。
04:04
啊,比如说它一一,那这个时候没有这个文件就会读取失败啊好,那如果读取失败的话呢,我们就抛出异常啊,在javascript当中呢,它没有异常的概念就叫错误啊,所以呢,如果读取失败的话呢,我们就把这个错误抛出,然后如果没有读取失败的话呢,那么就会来到if语句的下一句,我们呢,就从data data呢,就是我们读取到的文件的这个文件流了,相当于那我们从这个文件流当中通过to string方法把文件当中的内容呢,打印在控制台当中,那么同时呢,我们在后面这个位置打印一个读取文件。好,接下来呢,我们来运行一下这个代码,那么就是no啊,零二好,然后read well,那么大家可以发现这个地方呢,就是一个读取文件的一个输出,而我们在应用程序当中,读文件的这段代码呢,是在最后一行写的,而我们文件读取成功之后输出内容这段代码呢,是在这个回调函,是在这个第二个匿名函数,呃,作为参数的这个我们其实管它叫回调函数啊,在这个里面写的,所以我们可以认为读文件的这个操作在我们javascript当中,它是一个异步操作。
05:19
啊,是一个异步操作,那这个呢,也是我们note JS平台当中可以做的一件事情,这个呢在我们浏览器端是没有办法做的,也就是说在浏览器端所运行的javascript当中啊,它是没有读取本地文件的这个功能的,而如果在note JS平台当中,因为它扩展了文件系统这样的一个模块,所以呢,我们就可以做读取文件的操作了,那么同时呢,大家就可以了解到了,Note JS实际上就是什么呀,它扩展了好多这样的一些模块,我们可以在这个里面使用它扩展的这些模块,然后来运行我们的应用程序,并且note JS里面呢,它还集成了javascript的引擎,那么如果具体的说呢,是V8引擎啊,它那个名字叫V8 v8呢就是。
06:05
CH的音响V8啊浏览器。里面内置的Java斯克的引擎叫V8引擎,为什么note j s会用proome里面的这个V8引擎呢?是因为这个V8引擎是数世界上速度最快的Java斯的引擎,所以呢,我们就可以知道,实际上每一个浏览器的厂商呢,它都会生产自己的Java斯科的引擎,就像汽车厂商似的,它可能每每一个品牌的汽车,它里面的引擎是不太一样的,是不是啊,所以呢,我们这浏览器里面的Java斯克的引擎也是一样的,它都不太一样啊,有的是自己开发的,有的浏览器呢是使用别的厂商开发的,但是呢,CH它的V8引擎是世界上最快的啊,执行javascript的速度最快的,那所以呢,Note JS呢就使用了这个引擎,那这个引擎呢,它不但给我们提供了控制台命令行当中执行代码的能力,它呢还在这个里面呢,给我们扩展了一些啊一些模块,然后让我们能够完成更丰富的一些操作,所以这是这样的一个。
07:10
读取文件啊,这样的一个例子,然后接下来呢,我们来看第三个例子,第三个例子也是一样的,不需要大家就是目前为止去掌握,但是呢啊,你通过这个例子呢,能够了解到我们的嗯,Note JS呢,有这样的一些丰富的功能就可以了,那我们来看一下,我们是通过这个例子呢,写一个HTP服务器。好零三啊,Node server在node上呢,我们自己创建一个HTTP服务器,然后呢,具体的代码就是它了,我们直接把它粘回来运行就行了。好,我来领着大家一起读一读这个代码,这个代码是这样的,首先呢,我们也是用同样的方式引入一个叫做HTTP的模块,那么和刚才我们引入这个文件系统模块是一样的,我们把这个HTTP模块引进来之后呢,这个HTTP模块呢,有若干方法啊,其中有一个方法呢,叫create server,这个方法好,这个方法呢,它接收一个参数,这个参数呢,就是你在创建完这个HTP服务器之后,你要做什么,那么这个参数呢,它是一个匿名函数,匿名函数类型的参数,所以呢,这个参数里面呢,有两个值,一个是request,一个是response,那么看到这的时候,大家可能就比较啊熟悉,有点类似于我们的light是不是好,在这个地方呢,我们可以通过request来获取啊,我们的,呃。
08:42
这个浏览器端给我们传回来的一些参数啊,然后呢,通过response呢,我们可以给浏览器端呢返回一些响应啊,所以呢,在这个地方呢,我们就通过响应来写了一个响应头,响应头呢就是我现在这个响应的内容呢,是HTML类型的响应内容,并且呢,我的呃响应码呢是200啊,然后接下来呢,这块呢,就是我的响应题,我的响应体呢,是一段HTML的一个呃内容,然后这里面呢,就是以H1标题啊的形式呢,去显示hello note JS server这样的一个内容,所以这块就有点类似于我们sir light当中给前端发响应啊,这这块的那个内容啊,就是咱们大家在学这个GSP和so的时候,用so给前端返回响应,其实就类似这样的一个写法,所以呢,他在这个地方呢,就创建了一台服务器,并且呢去监听,监听啊,浏览器端给我们发的请求,并且呢给浏览器端呢,再返回一个响应,然后在哪监听呢,是在八八。
09:42
八八这个端口进行,当然这个端口号你可以自己去改好,然后最后呢,我们在这个位置呢,去打印一个日志,叫server running at http啊8888,好,那我们来运行一下这个代码,先CTRLS把它保存一下,然后接下来呢,NODE03好回车,大家看现在呢,我们的这个服务器呢,就挂在这了,也就是说大家看这个光标就挂在这儿,有点类似于我们启动to k一样啊,我们就一开始在web阶段学习tomca的时候,你你启动了之后,它就会在一个命令行打开,并且Tom k的光标就会挂在那个地方,对吧?啊,就挂起了啊,所以它是现成阻塞的,所以这个地方也是一样的,就阻塞在这儿了,挂起了,然后呢,他就在8888端口就监听起来了,那他就等着你呢,去给他发请求,所以呢,我们就在浏览器端去访问这个啊怎么访问呢,你可以打开浏览器,把这个地址粘过去,你也可以在这个地方。
10:42
按CTRL,然后单击它,这样的话呢,它会自动打开一个浏览器,然后访问这个8888这个端口,访问我们刚才在node这个环境当中写的这样的一个代码,那么它实际上就相当于我们的一个服务器端的一个呃应用程序了啊,那我们通过浏览器来访问服务器端的应用程序,服务器端给我们一个响应,所以大家看通过这样的一个代码,我们是可以写一个HTTP服务器,并且还可以把啊HTP服务器所这个要响应的内容啊给我们响应到客户端浏览器当中,并且如果进一步去完成这个开发工作的话呢,我们甚至可以从前端传一些参数过去,然后在这个地方呢,可以去通过request这个对象去处理参数,所以呢,这个都是我们的note JS这样的一个应用程序所能完成的啊,内容好,那这块呢,就是给大家做的两个扩展的功能啊,大家做一个简单的了解就可以了。
11:39
好。
我来说两句