如何在Node.js中没有完整路径的情况下获取特定文件的目录名称?

时间:2019-04-09 09:35:38

标签: node.js path

Node.js官方文档提供了以下示例:

path.dirname('/foo/bar/baz/asdf/quux');
// Returns: '/foo/bar/baz/asdf'

但是,我实际上希望使用'asdf'而不是完整路径'/foo/bar/baz/asdf'

尽管进行了一些字符串操作,最好的方法是什么,或者我可以直接获得该字符串的任何官方API?

3 个答案:

答案 0 :(得分:1)

您可以在path.dirname()返回的目录路径上使用path.basename(),如下所示。此方法返回给定路径的最后一部分。

const path = require('path');
const dirPath = path.dirname('/foo/bar/baz/asdf/quux');
console.log(path.basename(dirPath))

答案 1 :(得分:1)

官方API或模块也将执行字符串操作,这很简单:

path.dirname('/foo/bar/baz/asdf/quux').split("/").pop(); // asdf

对于所有平台:

 path.dirname('/foo/bar/baz/asdf/quux').split(/\/|\\/).pop(); // asdf

答案 2 :(得分:1)

我相信这行简单的代码应该可以为您带来预期的结果。

  import * as ga from "../../../../../node_modules/group-array"; //proper path to your node_modules/group-array

  arr = [
    {tag: 'one', content: 'A'},
    {tag: 'one', content: 'B'},
    {tag: 'two', content: 'C'},
    {tag: 'two', content: 'D'},
    {tag: 'three', content: 'E'},
    {tag: 'three', content: 'F'}
  ];  

  ngOnInit() {
    console.log(ga(this.arr, 'tag'));
  }