00:00
好,那这节课我们来看一下啊pass模块,Pass模块呢主要提供了啊这么几个方法,首先看第一个pass join pass join方法用来连接路径啊,该方法主要的用途在于它会正确的识别当前系统的路径分隔符啊,这是为什么会有这个方法的存在,因为在unix系统中,哎,我们的路径的分隔符是哎,这个正斜杠,但是在Windows中是反斜杠。啊,为了就是说使我们的这个编码在Windows上和Linux上都能正常的运行,所以会用到这个方法来处理这个路径。我们来看一下啊,代码就直接复制一下。在这里新建一个。零五。我们来新建一个index GS。这个pass这个模块用的时候也要先引入啊,先导入才能使用,然后这个是我们要连接的这个目录啊,比如说我们连接这个node JS里面的这个。
01:01
哎,就连接这个note GS,然后这边呢,我们给它连接成这个零五啊啊,它呢会返回连接后的一个结果。我们来打印一下这个结果。下面来运行零五里面的这个index.gs啊,可以看到它会把这个目录给我们做一个,就是把这个前面的目录和我们的后面的做一个连接啊。嗯,至于为什么要用这个pass模块来连接它们呢?哎,这是因为如果我们手写这个目录的话,那比如我们,哎,我们手写这个目录是这样的,对吧。啊,那在unix系统下,这个目录当然没问题,我们去读取这个里面的文件呀,什么都是正常的,但是如果是在Windows下去运行这个程序的话,就会出现问题,因为Windows它的目录是这种反斜杠,对吧,大家见的比较多,比如C盘啊下面的啊什么什么下面的什么什么是这样的,对不对,所以说就会用到了这个pass模块,它可以呢,根据我们当前就说程序所呃运行运行这个程序所处在的这个操作系统不同来就是说自动去处理这个路径的连接的方式,明白了吧啊。
02:17
啊啊,这样就保证了我们的程序啊,不管在unix系统上还是在Linux系统上都是可以正常运行的啊。那接着呢,我们再来看pass的一个方法啊,Resolve,那pass resolve方法用于将相对路径转为绝对路径啊,它可以接收多个参数啊,依次表示要进入的路径,直到将最后一个路径转为绝对路径啊,那如果无法根据参数得到绝对路径,就以当前所在的这个路径啊。为这个路径的基准。除了根目录这些,就是这个方法,它返回时都不带这个尾部的这个斜杠,就是最后都不带这个斜杠,我们一点一点来看啊来看概念比较绕。
03:00
首先看第一个就是它可以接收多个参数,然后依次表示要记入的路径,直到将最后一个路这个参数转为这个路径啊我们先来看这句话,那这句话的意思呢,就是说它前面可以接收多个参数啊,呃,接收多个参数呢?呃,就相当于我们就是说进入了这个目录,比如说CD到这个目录在CD到这个目录在CD到啊这个啊,直到CD到最后一刻,然后显示它的这个绝对路径啊,是这么个意思啊。好,那我们来复制一下啊。嗯。自己写一下吧。先把这个给。主视点啊。Pass。啊,接收多个参数啊,比如。呃,我们来写一个。T top啊,第二个再写一个node GS啊,第三个再写一个零五啊,来看一看C这个结果,为什么这么写呢?因为我现在的目录恰巧是这个X top下面的诺基亚四下面的零五,好,来打印一下这个C,看一下它这个结果啊。
04:15
可以看到。呃,给我们输出了这样的一个东西,看到了吧,你看dist top,然后里面的下面的note GS啊,然后然后这个这个是我当前所在的目录,知道了吧,当前所在的这个目录就是它对不对,然后它会以当前项目就是当前所在目录为基准,继续给我连上这个DIS25,你看再连上这个note GS,再连上零五对不对,哎,虽然这个路径不对,但是我们是为了演示这个函数啊,就是后面我们说的这句话,如果。这个参数无法得到绝对路径,就以当前所在的路径为选,那我们这个参数是没办法得到绝对路径的。清楚了吧,啊,因为你不是斜杠开头,如果我以斜杠开头,比如说我是前面我是这么去写。
05:01
啊,我这么去写好,这样的话,是不是可以得到绝对路径了啊,这时候我们再来看我们得到的路径的这个结果。来。看现在路径是不是就对了啊,因为这个第一个参数呢,我们加了这个斜杠,它能得到这个绝对路径,所以说哎,就。可以得到这个正确的一个路径啊。然后它相当于什么呢?你看这参数特别多啊,它其实给大家也说了,它就相当于我们一直CD,直到最后一个,哎,我们进行这个PWD,明白了吧?好,那我们来看一下这个函数执行过程,它有这个三个参数对不对,相当于干什么,相当于我CD,哎第一个参数,然后在CD第二个参数。等一下啊,没粘贴上啊,没复制上在CD第二个参数对吧,然后。重新来啊,重新来首先清楚一下啊,等于我先CD到这里啊,第一个参数好,是不是现在处于这个top这个目录,接着呢,我在CD到。
06:06
也写吧,啊CD到这个参数现在是不是来到no GS,好,接着我在CDCD到最后一个。零五好,然后再执行PWD是不是这个结果,这个结果和我们直接执行这个函数的结果是不是一致的。等一下啊。这个是报错了。因为我们现在就在零五,所以这个在执行这个GS的时候,就不加这个零五了啊好。看到这个路径了吗?那是不是和我们刚才啊不断的CD以后再进行PWD是一样的,那这就是这个方法的一个作用啊resolve,因为第一个参数呢,我们是加了这个根,所以它能。得到这个绝对路径啊,这个路径它就会从这个地方开始去,呃,连接后面的,那如果我们得不到这个绝对路径呢,它就会以当前路径为这个基准。
07:05
好,然后下面还给了一个更多的例子啊,这是能得到绝对路径的情况下啊。就是前面的就变成了后面的那。这个啊,也是能得到这个绝对对的情况下,但是呢,大家注意啊,这个是绝对路径,第二个也是绝对路径,按照我们上面的解析,它相当于执行了谁先CD到这个目录,再CD到这个目录,再执行PWD,是不是最终就是我们所处的这个目录。清楚了吧,好,按照我们上面的这个呃流程,我们来解析一下下面啊,那CD的它它是不是没有给绝对径,相当于是呃从当前目录我们C掉它对吧,接着在CD到这里面,最后在C到上一层目录这里面,哎,最终得到的呃就是前面啊。就是我们目就是执行这个命令所在的这个目录啊,就这个啊,是我们这个执行这个就是文件所在的这个目录,后面是连上这个相对目录啊,接着再连上它啊,然后这一个点点杠,点点杠呢,它就是向上又走了一层啊,所以就是这样的一个结果。
08:10
那关于这个我给大家啊,稍微演示一下啊。嗯,那这个呢,我们就先不要啊。来数数这个,这个我来从谁开始走呢?从这个,呃,我先回到家目录啊,看一下当前我是处在这个目录对吧,好,那接着。我来执行这个谁呢?我来第一个参数先写这个啊,第二个写这个,第三个我就不写了啊好接着呢。我来执行一下这个啊。呃,因为我现在是,呃,在这个目录加目录,所以我要执行到这个JS文件的话,我得去啊,这样一层一层的去找啊note GS里面的零五下面的X啊来看一看这个执行结果是不是输出了啊。
09:07
这个我的用户这个加目录啊,然后连上我这个目录,连上第一个参数,连上第二个参数,对不对啊,所以在我没有指定这个根目录,它无法得到绝对路径的情况下。他就会以你当前执行这个命令所在的这个目录为前面的这个呃,基准目录,然后去,哎。不断的去连接上这个啊,那按照我们的解析的流程,也就是相当于现在我在这个目录对不对,加目录,哎,现在我在这个目录啊,然后。来按照我们的这个执行的过程,我是不是现在相当于CD的CD到第一个目录啊,CD到g top啊,然后看一下现在是就在了这个里面对不对,那我接着在CD notde GS是不是就在到这里面啊,好,这个方法简单的记的话,就相当于你不管有几个参数,我我就相当于CD到第一个在CD,第二个在CDCD1直到最后执行这个PWD,明白了吧,哪怕你再多啊,你再多,后面你再多参数,哎,都是相当于啊CDCDCD,然后。
10:11
哎,PWD明白了吗?啊,这么去记这个这个方法啊。嗯,接着再来。看一看啊,下面的就是说pass模块,还有其他的一个方法,比如说这个,呃,这个access,它是用来同步去读取一个路径啊,然后可以去判断一个目录存不存在啊,当然我们判断目录存不存在,还有其他的方法啊,这个就不演示了。呃,再来看一个比较常用的一个pass relative,它接收两个参数,这两个参数呢,都是绝对路径啊,它会返回什么呢?第二个路径相对于第一个路径的一个相对路径啊,就是对比两个参数,然后返回第二个路径相对于第一个路径的相对路径。啊。好,我们就拿这个例子来给大家演示啊。嗯,把这个图给大家写一下啊,连接目录啊可以正确。
11:07
处理啊,不同系统中的连接服啊,啊,下面我们使用的这个是。用于将相对路径转为绝对。路径啊,这是这个方法主要的一个啊作用啊,有时候我们呃,可以去连接多个目录,形成一个绝对路径,有时候我们只要执行一个也可以啊,比如说我们再来一个变量啊。Pass掉resolve,哎,我们就是想得到啊,这个零五的这个绝对路径是多少,因为我们当前就是在这个note CS这个目录,对吧,那我就想得到这个零五的这个绝对路径,这时候我来输出这个E啊。来执行。
12:02
NO05下面的零担子啊,注意我执行这个命令,后面的这个路径取决于我当前所处的这个目录啊。这个大家要注意,如果水果limits对这个应该比较好理解好,是不是就得到了这个零五所在的一个绝对路径就是这个。就相当于CD,然后是呃,按的这个PWD嘛。啊,这是这个啊,接下来是要说的,我们下面要演示的一个啊,是这个。Pass点儿。啊,它是用来。对比这个两个。绝对路径啊,用来返回第二个路,绝对路径相对于第一个绝对路径的一个相对路径啊,就是说啊,来比较一下他和他,然后看他跟它的相对路径是什么啊,这个方法来看一看这个效果啊。Y一个等于它F的logo,我们来打印一下,它首先看一下,我们先不看它的执行结果,我们来猜测一下。
13:08
对比一下它们相路径,首先是呃,第一个啊,都是这个date,那是一样的,然后是这个也是一样的,好,那接下来就不一样了,它是test下面的AA,它是呃,这个EL下面的BB,对吧,那么它相对于它是。相对路径是什么样的,按我们来讲的话,如果这个我们要写成相对路径的话,是不是点点杠啊,点点杠上一层目录下面的这个。然后比比变对不对,就是。它和它的一个相对路径对吧。好,那我们来执行一下,看看这个效果啊,还是零五.gs是不是得到这样一个结果啊,得到它的一个相对路径啊。好,那我们如果再来简单的写一写啊,再来写一个简单的。啊,这个G。对比谁呢?我们就对比这个test下面的A,以及test下面的这个B,哎,下面呢,就是他们前三个都一样,只有最后一个不一样,我们来看看它的这个,哎,相对直径是多少。
14:14
这个没有输出没有换啊,应该输出这个啊。啊,是不是就只有一层了,因为他们前面这这些层都是一样的,对吧,那不一样的目录层级是谁呢?只有最后一个啊,我们知道如果是最后就只有一层目录不同的话,我们想就是说使用相对的电话,是不是使用点点杠是上一层,从上一层目录开始找对不对,那就是点点杠下面的B与B记住了吧,那这是这个目录一个作用啊,这是这个方法的一个作用,对比两个绝对路径啊,返回。第二个参数相对于第一个参数的啊,相对路径啊,这是这个啊方法这个函数。
15:04
最后我们再来看一个啊,这个pass站啊,这个pass这个也是用的比较多的,它可以返回这个路径的比较详细的一个信息啊,这个呢,我们可以从这个它的这个信息里面提取出来,我们需要的一个一个部分啊,比如我们来。看一下啊。现在我们。看几下这个index.gs它所处的一个路径啊,我们放到这个编辑上,可以看到它是在这个零五下面的index.gs对吧,那我们来看一下。啊,先来定义一个这个啊路径信息吧,等于嗯,我直接在这写一个PWD,然后复制一下这个路径啊。是个字符串啊,然后note GS下面是不是有一个这个0505下面是不是有一个index.gs好,那接下来呢。
16:03
我们来使用这个pass点啊。来看一下他的一个详细的信息啊。来执行啊。好,可以看到给我们输出了这么几个信息啊,首先是一个root,一个目录,然后是呃,这个啊文件它所在的一个目录DR是吧?是诶在这个零五这个目录,它反回来这是个绝对路径啊啊再然后呢,我们的base就是文件名啊,就基准的一个文件名就是引带点S啊后缀,哎文件的后缀是点GS啊文件的名字name啊是这个index是不是可以返回出来比较详细的信息对吧?大家其实可以看到这个里就能想到很多用法,比说这个后缀啊,比如说这个name对吧,比如我们来想象一个场景,我对这个上传的文件啊,进行这个唯一的文件名除命名,那是不是我要把它的name。给进行重密掉,但是呢,我还要拿到这个文件的后缀,是不是就可得到这个后缀了,比较省事啊,这这个方法用的比较。
17:05
用的也比较多啊,大家写一下啊返回路径。各部分的信息啊。好,那这一节课我们给大家介绍了这个pass模块的应用啊,给大家总结一下比较常用的方法,有这个pass教你用来连接这个目录啊,然后还有就是这个pass啊,Resolve来转换这个绝对路径啊,以及这个啊。Pass pass啊,来获取一个比较详细的信息,好,那其实这个呢用的比较少啊,这个呢用的也比较少,最常用的就是这三个啊,这三个大家一定要记住,那我们写诺S4的时候,如果你掌握的方法越多,你写NOTES4的效率啊,写的这个代码质量就会呃越好。然后解决问题的能力也会越强。好,那这节课先到这里。
我来说两句