如何在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
),则可以使用__dirname
variables而不是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