我是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
。
我只是不知道该怎么做......
答案 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()
正常工作。
<强>参考强>