如何在Node.js中的当前目录中创建目录

时间:2016-04-08 04:06:06

标签: node.js mkdir

我是Node.js的新手,所以我不熟悉很多东西。 所以基本上我想在当前工作目录中创建一个目录:

 var mkdirp = require('mkdirp');
 console.log("Going to create directory /tmp/test");
 mkdirp('/tmp/test',function(err){
       if (err) {
           return console.error(err);
        }
console.log("Directory created successfully!");
});

我目前的目录是Windows上的C:\Users\Owner\Desktop\Tutorials\NodeJS,这意味着我在该目录中运行node main.js。 (main.js在C:\Users\Owner\Desktop\Tutorials\NodeJS) 运行代码后,它生成C:\ tmp \ test,它位于C:\中。 但是我想在当前目录中创建它,所以我想要的结果是C:\Users\Owner\Desktop\Tutorials\NodeJS\tmp\test

我只是不知道该怎么做......

2 个答案:

答案 0 :(得分:2)

您可以使用process.cwd()输出执行命令的目录(在您的情况下,您运行的目录node main.js),这样您的代码可能如下所示:

var mkdirp = require('mkdirp');
var path = require('path');

console.log("Going to create directory /tmp/test");
mkdirp(path.join(process.cwd(), '/tmp/test'), function(err){
  if (err) {
    return console.error(err);
  }
  console.log("Directory created successfully!");
});

如果只需要main.js文件所在的目录而不是执行它的位置(通过调用node main.js),则可以使用__dirname变量而不是{{1 }}

最好使用process.cwd()函数来确保正确设置路径分隔符,尤其是当您使用的Windows系统可能会将正斜杠视为选项时。

答案 1 :(得分:-1)

var mkdirp = require('mkdirp');
var path = require('path');
console.log("Going to create directory /tmp/test");
mkdirp(path.join(__dirname, '/tmp/test'),function(err){
    if (err) {
        return console.error(err);
    }
    console.log("Directory created successfully!");
});

您可以path.join(__dirname, '/tmp/test')使用__dirname返回The name of the directory that the currently executing script resides in.

您需要包含模块“路径”才能使path.join()正常工作。

<强>参考

__dirname