如何在没有冲突的节点中创build一个tmp目录

我需要在node.js中按需创build一个临时的“scratch”目录。 要求是:

  • dirname应该是随机的(即/tmp/aDIge4G/
  • 该目录将在/tmp中创build,其中可能已经有其他随机命名的目录。
  • 如果该目录已经存在,我应该抛出而不是使用它并覆盖别人的工作
  • 这需要在并发环境中安全。 我不能检查目录是否存在,然后创build它,如果没有,因为别人可能已经创build了一个同名的目录后,我检查。

换句话说,我需要这个问题的答案,但目录,而不是文件。

这个答案说,我想要做的事情可以通过mkdir -p完成,但是Node没有fs.mkdir-p标志

你可以尝试打包“tmp” 。 它有一个configuration参数“模板”,反过来使用Linux的mkstemp函数,可能会解决您的所有需求。

使用fs.Stats来检查它是否存在?

像这样的东西?

 fs.stat(path, function(err, stats) { if (!stats.isDirectory()) { // create directory here } }