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

How to create a directory in the current directory in Node.js

我是 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.

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

您可以使用 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 变量而不是 process.cwd().

最好使用 path.join() 函数来确保正确设置路径定界符,尤其是当您使用的 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 会 return The name of the directory that the currently executing script resides in.

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

参考

__dirname