如何在Node.js中的当前目录中创build一个目录

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

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 ,这意味着我在该目录中运行node main.js (main.js位于C:\Users\Owner\Desktop\Tutorials\NodeJS )运行代码后,它生成C:\ tmp \ test,它位于C:\ 。 但是我想在当前目录下创build它,所以我想要的结果是C:\Users\Owner\Desktop\Tutorials\NodeJS\tmp\test

我只是不知道该怎么做…

你可以使用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文件所在的目录, main.js需要执行它的位置(通过调用node main.js ),则可以使用__dirnamevariables而不是process.cwd()

使用path.join()函数确保正确设置path分隔符是一个不错的主意,特别是当您在Windows系统上可能将正斜杠作为选项时。

 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”,使path.join()工作。

参考

__dirname