javascript - 在 Node js中创建具有权限的目录

标签 javascript node.js mkdir

我正在尝试使用 mkdirp Node 模块创建一个文件夹。但它是在 0775 权限下创建的,但我需要在 0777 权限下创建。官方文档说它默认为 0777,但在我的情况下是 0755。有人可以帮我吗? 代码:

var new_location = 'public/images/u/7/';
mkdirp(new_location, function(err) {
  if (err) {
  } else {
  }
});

最佳答案

文档指出默认值是 0777 & (~process.umask()),这意味着您的 umask 值是从 0777 中“减去”的。因为 umask 通常是 002 或 022 ,你最终得到 0775 或 0755。

但是,即使您向 mkdirp() 提供 0777 权限,底层系统调用仍会应用 umask 值。为防止这种情况发生,您需要清除 umask,使用您想要的权限创建目录,并(可选)将 umask 恢复为其以前的值:

var oldmask = process.umask(0);
mkdirp(new_location, '0777', function(err) {
  process.umask(oldmask);
  if (err) ...
  ...
});

或者,您可以使用 fs.chmod()在创建目录后设置正确的权限。

关于javascript - 在 Node js中创建具有权限的目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34720794/

相关文章:

node.js - 如何使用 Node.js 和 Postman 将文件上传到 cloudinary

python - 如何将 JSON 文件放在本地服务器上?

regex - 更好的 bash 脚本来创建目录结构

javascript - 当我将它作为参数传递时,为什么 JavaScript 函数会自动转换二进制数?

javascript - N 个排序整数数组的交集有限制

node.js - 如何在 Mongoose 中使用自定义类型?

c - 修改现有的 do_mkdir() 系统调用以打印创建的尚不存在的文件夹

linux - mkdir选项不清楚

javascript - 拖动时将助手保持在鼠标下方

javascript - firebug 报告对 undefined reference ... jquery.cache [id] [name]