node.js学习5--node.js的路径path模块

路径path模块

相对路径问题

在读取文件时,写相对路径容易出现以下问题:

假设有如下两个文件,它们所处的目录及文件名如下所示:

file/js/fs.js
file/js/text.txt

fs.js代码的作用是读出text.txt中的内容,并显示出来。

const fs = require('fs');

fs.readfilesync("./text.txt",'utf8'); 
// 这里对text.txt的访问,使用的是相对"fs.js" 本身的路径

现在,运行fs.js这个文件有两种方式:

  • 如果终端中的路径定位在js目录下,则通过node fs.js
  • 如果终端中的路径定位在file目录下,则通过:node js/fs.js ,此时就不能正确找到文件了。
  • 原因是:在fs中读取文件时,使用的是相对路径,而相对路径的参考点是运行这个js文件的小黑窗的路径。而这个路径是可以通过cd命名来调整的。
    • 解决方法:在操作文件时,使用绝对路径来定位文件。

__dirname 和 __filename 获取绝对路径

绝对路径:从磁盘根目录开始到指定文件的路径。

相对路径:是以某个文件的位置为起点,相对于这个位置来找另一个文件。

node.js中提供了两个全局变量来获取绝对路径:

  • __dirname:获取当前被执行的文件的文件夹所处的绝对路径。
  • __filename:获取当前被执行的文件的绝对路径。

path模块常用方法

path模块API

path模块是一个核心模块,用来处理路径问题:拼接,分析,取后缀名。

  • path.basename(路径) 获取返回 path 的最后一部分(文件名)
  • path.join() (常用)拼接路径
  • path.parse(path) 转成一个对象
path.basename('/foo/bar/baz/asdf/quux.html');    // 返回: 'quux.html'

path.basename('/foo/bar/baz/asdf/quux.html', '.html');   // 返回: 'quux'

path.dirname('/foo/bar/baz/asdf/quux');    // 返回: '/foo/bar/baz/asdf'

path.extname('index.html');     // 返回: '.html'

path模块其它方法列表

方法作用
path.basename(path[, ext])获取返回 path 的最后一部分(文件名)
path.dirname(path)返回目录名
path.extname(path)返回路径中文件的扩展名(包含.)
path.format(pathObject)将一个对象格式化为一个路径字符串
path.join([…paths])拼接路径
path.parse(path)把路径字符串解析成对象的格式
path.resolve([…paths])基于当前工作目录拼接路径
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值