path.normalize(your_path)path.resolve(your_path)之间有什么区别(如果有的话)?

我知道path.resolve(...)可以接受多个参数,但是一个参数的行为和调用path.normalize()一样吗?

EDIT:如果它们的行为应该是相同的,我不明白公开path.normalize(...)函数的目的是什么,你可以简单地将路径传递到path.resolve(...),或者,可能是为了文档目的.例如,他们在path.resolve(...)的文档中说:

... 结果路径被规范化,并且...

公开path.normalize(...)让解释"标准化"意味着什么更容易?我不知道.

推荐答案

path.normalize清除路径中多余的...等.path.resolve将路径解析为绝对路径.示例(我当前的工作目录是/Users/mtilley/src/testing):

> path.normalize('../../src/../src/node')
'../../src/node'
> path.resolve('../../src/../src/node')
'/Users/mtilley/src/node'

换句话说,path.normalize是"我能走的最短路径是什么,它将把我带到与输入相同的地方",而path.resolve是"如果我走这条路径,我的目的地是什么"

然而,请注意,path.normalize()path.resolve()与上下文无关.如果把当前目录从de/Users/mtilley/src/testingdeE的最短路径考虑在内,那么这个结果就是path.normalize().

具有讽刺意味的是,这意味着path.resolve()以绝对值产生一条相对路径(你可以在任何地方执行它,它将产生相同的结果),而path.normalize()以相对值产生一条绝对路径(你必须以你想要计算绝对结果的相对路径执行它).

Node.js相关问答推荐

无法验证叶签名|无法验证第一个证书

monorepo内的NPM包使用不在注册表中的本地包

在渲染上部署Node.js服务器时出错:MODULE_NOT_FOUND

nest js控制器方法调用两次

如何使用Node.js、Express和Mongoose创建多个API

为什么我的表单数据在我的POST请求中作为应用程序/json发送,为什么它返回错误请求错误?

如何在.npmrc中添加 comments ?

无法使用Sequelize连接AWS RDS

获取页面大小为10的所有文章,每篇文章填充一些所需的用户信息

使用 playwright 获取页面中同一 url 的所有响应

NodeJS:zlib.gzipSync 在不同平台上给出不同的明文输出

如何在MongoDB中删除嵌套对象数组中的属性?

Docker node_modules 文件夹上的 React 应用程序不可用

未捕获的错误: 只能用作 元素的子元素,永远不会直接呈现.请将您的 包裹在

为什么 client.on("messageCreate") 的 TextChannel 中缺少 nsfw 属性?

npm install 在 Mac 上的 Node-gyp 构建错误

NodeJS 中的流 API 数据如何流动?

在数组的另一个对象中获取数组的mongoose 对象

Node.js -Firebase 服务帐户私钥不会解析

从 zip 文件在 AWS 中创建 lambda 函数