以下调用之间有什么区别吗?

path.join(__dirname, 'app')

与.

path.resolve(__dirname, 'app')

你应该 Select 哪一个?

推荐答案

这两个函数以非常不同的方式处理从/开始的段;join只会将其与上一个参数连接起来,然而resolve会将其视为根目录,并忽略所有之前的路径——将其视为对每个参数执行cd的结果:

path.join('/a', '/b') // Outputs '/a/b'

path.resolve('/a', '/b') // Outputs '/b'

另一件需要注意的事情是,path.resolve将始终生成一个绝对URL,并将使用您的工作目录作为解析此路径的基础.但是__dirname是一条绝对路径,无论如何,这对你来说并不重要.

至于你应该使用哪一个,答案是:这取决于你希望从/开始的片段如何表现——它们应该简单地连接起来,还是作为新的根?

如果其他参数是硬编码的,它真的不重要,在这种情况下,你应该考虑(a)这条线将来可能如何变化,以及(b)它与代码中的其他地方有多大的一致性.

Node.js相关问答推荐

在Android Studio中react 本机构建失败:未正确检测到Node.js版本

设置默认 node 版本

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

即使卷已设置,Docker Nodemon 也不会热重载

编写动态创建的 YAML - 为生态系统创建 Docker compose 文件(使用 js-yaml)

将 POST 的 json 变量格式化为 lambda

我如何在nodejs中的路由之间交换令牌

Prisma,只有一个用户的行可以有真值,@@unique(userId, isActive)

为什么 nginx 不将我的 react index.html 作为后备服务

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

MongoDB - mongoose :如何查询这个? 填充()不起作用.它显示空

我怎样才能让`git`失败而不是要求提供凭据

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

如何从 github 编译第三方扩展?

NodeJs 过滤掉目录异步

在 PassportJS 中使用多种本地策略

Mongoose:查找、修改、保存

代理(如提琴手)可以与 Node.js 的 ClientRequest 一起使用吗

如何使用 cookie 创建 HTTP 客户端请求?

桌面应用程序仅支持 oauth_callback 值 'oob'/oauth/request_token