path
var path = require('path')
//返回一个对象,包含dirname、basename、extname等方法,如下图
console.log(path)
var filepath = '/node/base/path/test.js'
// dirname返回路径前缀
// 返回/node/base/path
console.log(
path.dirname(filepath)
)
// basename返回路径的最后一部分,第二个参数是指定文件扩展名
// 返回 test.js test
console.log(
path.basename(filepath),
path.basename(filepath, '.js')
)
// extname获取文件扩展名
// 返回 .js
console.log(
path.extname(filepath)
)
// 连接路径名
// 返回 a/b/c
console.log(
path.join('a', 'b', 'c')
)
// 这个接口的作用就相当于在shell命令下,从左到右运行一遍cd path命令,
// 最终获取的绝对路径/文件名,就是这个接口所返回的结果了。
// 返回 / /static/img
console.log(
path.resolve(),
path.resolve('static/img')
)
// path.relative(from, to)
// 边界:如果from、to指向同个路径,那么返回空字符串。如果from、to中任一者为空,那么,返回当前工作路径。
// 规则先找到from, to 路径的共同父目录,apecs目录的上一级是a目录,不一样就再向上找到test目录,然后from,to都在test目录下,
// 所以是../../a/specs
// 返回
// ../../a/specs
var a = path.relative('../test/e2e/custom-assertions', '../test/a/specs')
console.log(a)
// 返回
// ''
var b = path.relative('../test/e2e/custom-assertions', '../test/e2e/custom-assertions')
console.log(b)
// 返回
// ../../..
var c = path.relative('../test/e2e/custom-assertions', '')
console.log(c)
__dirname
Node.js 中,__dirname 总是指向被执行 js 文件的绝对路径,所以当你在 /d1/d2/myscript.js 文件中写了 __dirname, 它的值就是 /d1/d2
网友评论