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

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相关问答推荐

使用OpenAI API时遇到问题

当建议在第二代上运行云功能时,现在是否有新的Firestore AdminClient可供使用?

Express 4.18正文解析

当 Got 包因错误 JSON 崩溃时如何获取响应文本?

与诗乃一起嘲笑奈克斯

nyc 代码覆盖不适用于 NodeJs Express 服务器

使用 Nodejs 获取 Firebase 云消息传递历史记录

如何使用 node.js 将两个或多个 API 请求组合成一个端点并表达

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

firebase/messaging 不提供名为 getToken 的导出

discordjs如何添加所有意图/权限

bash:npm:找不到命令?

如何使用 UglifyJS 缩小文件夹中的多个 Javascript 文件?

为当前目录提供服务的简单文件服务器

Base64 编码一个 javascript 对象

如何监控 node.js 上的网络,类似于 chrome/firefox 开发者工具?

为什么我们要为 Angular 2.0 安装 Node.js?

续集findbyid不是一个函数,但显然findAll是

node.js 找不到模块mongodb

Mongoose:模式与模型?