当前位置:  开发笔记 > 编程语言 > 正文

在节点js中创建具有权限的目录

如何解决《在节点js中创建具有权限的目录》经验,为你挑选了1个好方法。

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

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

robertklep.. 16

文档说明默认值是0777 & (~process.umask()),这意味着你的umask值是从0777"减去"的.由于umask通常是002或022,你最终会得到0775或0755.

但是,即使您提供0777权限mkdirp(),基础系统调用仍将应用umask值.要防止这种情况,您需要清除umask,使用所需的权限创建目录,并(可选)将umask恢复为以前的值:

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

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



1> robertklep..:

文档说明默认值是0777 & (~process.umask()),这意味着你的umask值是从0777"减去"的.由于umask通常是002或022,你最终会得到0775或0755.

但是,即使您提供0777权限mkdirp(),基础系统调用仍将应用umask值.要防止这种情况,您需要清除umask,使用所需的权限创建目录,并(可选)将umask恢复为以前的值:

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

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

推荐阅读
mobiledu2402851173
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有