• Node.js Video Tutorials

Node.js - path.resolve() 方法



path 模块的 Node.js path.resolve() 方法将一系列路径段;或路径组合成一个绝对路径。给定的路径段从右到左处理,每个后续路径都预先附加,直到形成一个绝对路径

即使在处理完所有给定的路径段后,如果仍未形成绝对路径,此方法也将使用当前工作目录。此方法将忽略零长度的路径段。如果此方法未传递任何路径段,则将返回当前工作目录的绝对路径。

语法

以下是path 模块的Node.js path.resolve() 方法的语法:

path.resolve([...paths])

参数

  • …paths − 此参数包含要解析以形成完整绝对路径的一系列路径段

返回值

此方法将返回一个表示绝对路径字符串

示例

Node.js path.resolve() 方法将从右到左解析给定路径的序列,将每个路径预先附加,直到创建绝对路径。

在以下示例中,我们传递了不是绝对路径的路径段

const path = require('path');
path1 = path.resolve('CSS/', "..", 'HTML/', "..", 'file.html')
console.log(path1);

输出

在在线编译器(POSIX)中执行上述程序后,path.resolve() 方法从右到左解析路径段并返回绝对路径。

/home/cg/root/63a02f1595a95/file.html

以下是在WINDOWS 操作系统上执行上述代码时的输出。

C:\Users\Lenovo\Desktop\JavaScript\file.html

示例

如果未将任何路径段传递给path.resolve() 方法,它将返回当前工作目录的绝对路径

在以下程序中,我们向 path 参数传递了一个空字符串

const path = require('path');
path1 = path.resolve('')
console.log(path1);

输出

在在线编译器(POSIX)中执行上述程序后,path.resolve() 方法将返回当前工作目录的绝对路径。

/home/cg/root/63a02f1595a95

以下是在WINDOWS 操作系统上执行上述代码时的输出。

C:\Users\Lenovo\Desktop\JavaScript

示例

如果第一个路径未被视为根段,则path.resolve() 方法将为传递的路径段分配当前工作目录。

在下面的程序中,我们没有将第一个段视为根段。

const path = require('path');
path1 = path.resolve('CSS/', 'HTML/', 'file.html')
console.log(path1);

输出

如果我们在在线编译器(POSIX)中编译并运行上述程序,path.resolve() 将返回附加到当前工作目录的给定路径段。

/home/cg/root/63a02f1595a95/CSS/HTML/file.html

以下是在WINDOWS 操作系统上执行上述代码时的输出。

C:\Users\Lenovo\Desktop\JavaScript\CSS\HTML\file.html

示例

如果我们向…paths 参数传递的值不是字符串类型,则该方法将抛出TypeError

在给定的程序中,我们向path.resolve() 方法的…paths 参数传递了一个数组的实例,而不是一个字符串

const path = require('path');
path1 = path.resolve(['/file'])
console.log(path1);

TypeError

如果我们编译并运行上述程序,path.relative() 方法将抛出TypeError,因为…paths 参数不是字符串

path.js:39
   throw new ERR_INVALID_ARG_TYPE('path', 'string', path);
   ^

TypeError [ERR_INVALID_ARG_TYPE]: The "path" argument must be of type string. Received type object
   at assertPath (path.js:39:11)
   at Object.resolve (path.js:1090:7)
   at Object.<anonymous> (/home/cg/root/63a02f1595a95/main.js:3:14)
   at Module._compile (internal/modules/cjs/loader.js:702:30)
   at Object.Module._extensions..js (internal/modules/cjs/loader.js:713:10)
   at Module.load (internal/modules/cjs/loader.js:612:32)
   at tryModuleLoad (internal/modules/cjs/loader.js:551:12)
   at Function.Module._load (internal/modules/cjs/loader.js:543:3)
   at Function.Module.runMain (internal/modules/cjs/loader.js:744:10)
   at startup (internal/bootstrap/node.js:238:19)
nodejs_path_module.htm
广告