javascript - 如何在没有冲突的 Node 中创建 tmp 目录

标签 javascript node.js file concurrency directory

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

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

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

This回答说我想做的可以通过mkdir -p来完成,但是Node没有fs.mkdir-p标志>

最佳答案

当前 Node api建议创建一个临时文件夹:https://nodejs.org/api/fs.html#fs_fs_mkdtemp_prefix_options_callback

给出:

fs.mkdtemp(path.join(os.tmpdir(), 'foo-'), (err, folder) => {
  if (err) throw err;
  console.log(folder);
  // Prints: /tmp/foo-itXde2
});
// folder /tmp/foo-itXde2 has been created on the file system

关于javascript - 如何在没有冲突的 Node 中创建 tmp 目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35733684/

相关文章:

node.js - 需要环回用户角色的示例代码

javascript - 如何在 lodash forEach 中使用 Promise all 并解决它并执行 res.send(data)

mysql - 网站管理员权限 : Database vs. 文件结构

c++ - 如何在 C++ 中创建临时文本文件?

javascript - 带有固定子标题和下方可滚动内容的固定标题

javascript - 将原生 setState 与数组 react

node.js - 是否可以以阻塞/同步方式使用 Node js Postgres 客户端

linux - 如何实时监控每个文件的 Linux 文件访问

javascript - 如何在表格单元格(td)上使用 Bootstrap 的下拉菜单?

javascript - ondrop 影响目标的父级