📅  最后修改于: 2023-12-03 15:27:45.489000             🧑  作者: Mango
在 Node.js 中,我们通常可以使用相对路径或绝对路径来加载文件。然而,有时我们收到一个文件的 file:
URL,需要将其转换为文件的本地路径。这时,我们可以使用 URL.fileURLToPath
API。
const { URL } = require('url');
const fileUrl = new URL('file:///path/to/my/file');
const path = URL.fileURLToPath(fileUrl);
console.log(path); // "/path/to/my/file"
在上面的示例中,我们首先创建了一个 file:
URL 对象。然后,我们使用 URL.fileURLToPath
API 将其转换为文件的本地路径,并将其打印到控制台上。
URL.fileURLToPath
方法的返回值是一个字符串,表示文件的本地路径。如果输入的不是 file:
类型的 URL,将会抛出一个 TypeError
异常。
在使用 URL.fileURLToPath
方法时,需要注意以下几点:
URL.fileURLToPath
方法的参数必须是 file:
类型的 URL,否则将会抛出 TypeError
异常。\
)分隔符,而不是正斜杠(/
)分隔符。URL.fileURLToPath
方法不能识别含有转义字符的 URL,例如:file://example.com/foo%23bar
。在这种情况下,应该使用 decodeURI
函数对 URL 进行解码。URL.fileURLToPath
API 可以将 file:
URL 转换为文件的本地路径。使用时需要仔细阅读文档,避免出现异常情况。