nodejs的各种路径

在写Nodejs的过程中,经常会被各种路径所困扰,因为Require的模块机制,对于其底层可能有时并不会太清楚,这篇文章主要就是记录一些常用的目录的查询方法

process.cwd()

取当前工作目录(Current Work Directory),这个不同于“脚本所在目录”。如果你是通过命令行调用的,那么就应该是入口脚本的目录;如果是通过其他进程调用的会继承下来。

__dirname

获取当前文件所在的目录

path.resolve path.join

path.join方法用于连接路径。该方法的主要用途在于,会正确使用当前系统的路径分隔符,Unix系统是”/“Windows系统是”\“

path.resolve方法用于将相对路径转为绝对路径。
它可以接受多个参数,依次表示所要进入的路径,直到将最后一个参数转为绝对路径。如果根据参数无法得到绝对路径,就以当前所在路径作为基准。除了根目录,该方法的返回值都不带尾部的斜杠。

// 格式
path.resolve([from ...], to)
// 实例
path.resolve('foo/bar', '/tmp/file/', '..', 'a/../subfile')

module.filename

其实,有的时候我们可能需要这样的奇怪的需求

  1. 我是谁(我的文件是什么)
  2. 我从何处来(谁调用的我)

对于这两个问题,上面的方法已经不能解决了,因为上面的方法返回的都是目录路径,但是我要具体到某个文件。

这个时候就需要用到module

nodejs的环境中,每个独立的文件都会有属于自己的modulemodule记录了文件的相关的信息,因此对于上面两个问题我们可以分别这么使用:

let myfilename = module.filename; // 获取当前文件的文件名的绝对路径
let patent = module.parent.parent.filename; // 获取调用当前文件的父节点
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • https://nodejs.org/api/documentation.html 工具模块 Assert 测试 ...
    KeKeMars阅读 11,519评论 0 6
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,819评论 19 139
  • Node.js是目前非常火热的技术,但是它的诞生经历却很奇特。 众所周知,在Netscape设计出JavaScri...
    w_zhuan阅读 8,994评论 2 41
  • Ubuntu的发音 Ubuntu,源于非洲祖鲁人和科萨人的语言,发作 oo-boon-too 的音。了解发音是有意...
    萤火虫de梦阅读 99,978评论 9 468
  • publicPath指定了一个在浏览器中被引用的URL地址。 对于使用 和 加载器,当文件路径不同于他们的本地磁盘...
    飞呀飞哥阅读 5,640评论 0 0

友情链接更多精彩内容