node.js - NodeJS 中的路径操作

标签 node.js path

我想通过修改现有路径的副本来创建一些新路径。 Node 路径对象看起来非常基本。我可以看到默认路径对象是如何实现的,但它看起来很笨重。

最巧妙的改变方式是什么

a/path/to/file.json

进入另外两条路径

a/path/to/file-original.json

a/path/to/file-comparand.json

路径可以是相对的或绝对的,所以我希望有一些东西可以让我改变 name无需担心rootdir对象。

是否有高级路径模块或其他我缺少的东西?

感谢您的帮助

最佳答案

假设没有一个库可以为您实现此功能,那么使用 path.parse 并不一定很笨拙 - 我实际上认为使用它可能是执行此操作的最干净的方法:

let { dir, name, ext } = path.parse("a/path/to/file.json");
let path1 = path.join(dir, name + "-original" + ext);
let path2 = path.join(dir, name + "-comarand" + ext);

该代码片段使用 destructuring ,因此您需要最新版本的 Node 才能运行它。也就是说,您可以将其替换为正常访问解析的路径对象:

let p = path.parse("a/path/to/file.json");
let path1 = path.join(p.dir, p.name + "-original" + p.ext);
let path2 = path.join(p.dir, p.name + "-comarand" + p.ext);

没那么糟糕!

如果这是您在项目中经常做的事情,那么将其提取到实用函数中并不难,如下所示:

function suffixFilename(path, suffix) {
    let { dir, name, ext } = path.parse(path);
    return path.join(dir, name + "-" + suffix + ext);
}

let path1 = suffixFilename("a/path/to/file.json", "original");
let path2 = suffixFilename("a/path/to/file.json", "comparand");

关于node.js - NodeJS 中的路径操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42435464/

相关文章:

java - 无法使用 Node js 获取 GET HTTP

node.js - 如何使用 Passport 将 "Remember Me"添加到我的应用程序

node.js - 如何在 Node.js 中的 azure Active Directory 上获取登录用户的 token

Node.js Sequelize 获取原生池

php - ./和 ../在 PHP 中的区别

Python:当前目录是否自动包含在路径中?

scala - 在 Scala 中将文件名拆分为绝对路径

javascript - 如何从 node.js 文件访问 javascript 变量

java - 无法加载 rJava,因为无法加载共享库

ruby - hadoop流作业失败无法从SCDynamicStore env加载领域信息:ruby\r:无此类文件或目录