如果 node.js 中不存在,如何创建年 -> 月 -> 日期的文件夹层次结构

How to create folder hierarchy of year -> month -> date if not exist in node.js

我正在尝试创建名为当前年份的文件夹层次结构,在其中创建另一个名为当前月份的文件夹,然后再次在该文件夹内创建另一个名为当前日期的文件夹。

例如:今天的日期是 2016-05-02,因此如果文件夹不存在,则应创建如下结构

2016->05->02

See this previously answered question

执行此操作的好方法是使用 mkdirp 模块。

$ npm install mkdirp

然后用它来运行需要目录的函数。创建路径后调用回调(如果它不存在)。如果 mkdirp 未能创建目录路径,则会设置错误。

var mkdirp = require('mkdirp');
mkdirp('/tmp/some/path/foo', function(err) { 

    // path was created unless there was error

});

最好的解决方案是使用名为 node-fs-extra 的 npm 模块。主要优点是它建立在模块 fs 之上,因此您也可以拥有 fs 中可用的所有方法。它有一个名为 mkdir 的方法,可以创建您提到的目录。如果你给一个长目录路径,它会自动创建父文件夹。该模块是npm模块fs的超集,添加该模块也可以使用fs中的所有功能。

一个例子

var fse = require('fs-extra')
var os = require('os')

function getTempPath() {
  return os.tmpdir();
}

mymodule.get('/makefolder',function(req,res){

  var tempfolder = getTempPath();
  var myfolder = tempfolder + '/yearfolder/monthfolder/datefolder/anyotherfolder';

  fse.mkdirs(myfolder, function (err) {
    if (err) return res.json(err)
    console.log("success!")
    res.json("Hurray ! Folder created ! Now, Upvote the solution :) ");
  })
});