Node14 文件路径

本文介绍了Node.js中文件路径的表示方式,包括绝对路径和相对路径的使用。详细讲解了`path`模块的功能,如如何根据不同系统生成路径分隔符,将相对路径转换为绝对路径等。同时,提到了`__dirname`、`__filename`和`process.cwd()`的区别和应用场景。
摘要由CSDN通过智能技术生成

路径表示

Node.js中的文件路径主要有以下几种:

  1. __dirname
  2. __filename
  3. proces.cwd()
  4. ./
  5. ../

其中前三个是绝对路径,后两个是相对路径 ,可以通过path.resolve转换为绝对路径

我现在的目录结构是这样的:

D:/
    -projects/
        path-test/
            path.js

path.js:

const path = require('path')
console.log('__dirname:', __dirname)
console.log('__filename:', __filename)
console.log('process.cwd():', process.cwd())
console.log('./:', path.resolve('./'))

path-test文件夹下用Node执行path.js,输出结果:

__dirname:     D:\projects\path-test
__filename:    D:\projects\path-test\path.js
process.cwd(): D:\projects\path-test
./:            D:\projects\path-test

projectst文件夹下用Node执行path.js

__dirname:     D:\projects\path-test
__filename:    D:\projects\path-test\path.js
process.cwd(): D:\projects
./:            D:\projects

关于他们的区别:

  1. process.cwd()是程序的执行路径,./相同
  2. __dirname是被执行的JS文件所在文件夹的绝对路径
  3. __filename是被执行的JS文件的绝对路径,与__dirname一样,都是JS文件本身的属性

path模块

path.join()

用于连接路径,主要用于针对不同系统(windows/unix)使用当前系统的路径分隔符

var path = require('path');
path.join(mydir, "foo");

上面代码在Unix系统下,会返回路径mydir/foo

path.join()

用于将相对路径转为绝对路径

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

// 实例
path.resolve('foo/bar', '/tmp/file/', '..', 'a/../subfile')

上面代码的实例,执行效果类似下面的命令。

$ cd foo/bar
$ cd /tmp/file/
$ cd ..
$ cd a/../subfile
$ pwd

更多例子:

path.resolve('/foo/bar', './baz')
// '/foo/bar/baz'

path.resolve('/foo/bar', '/tmp/file/')
// '/tmp/file'

path.resolve('wwwroot', 'static_files/png/', '../gif/image.gif')
// 如果当前目录是/home/myself/node,返回
// /home/myself/node/wwwroot/static_files/gif/image.gif

参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值