如何在Node.js中使用chmod

时间:2012-01-06 10:46:27

标签: node.js chmod fs

如何将chmod与Node.js一起使用?

fs中有一个方法,应该这样做,但我不知道第二个参数需要什么。

  

fs.chmod(路径,模式,[回调])

     

异步chmod(2)。除了可能的异常之外,没有给完成回调的参数。

     

fs.chmodSync(路径,模式)

     

同步chmod(2)。

(来自Node.js documentation

如果我做的话

fs.chmodSync('test', 0755);

没有任何反应(文件未更改为该模式)。

fs.chmodSync('test', '+x');

也不起作用。

我正在使用Windows机器btw。

2 个答案:

答案 0 :(得分:52)

根据第508行的源代码/lib/fs.js

fs.chmodSync = function(path, mode) {
  return binding.chmod(pathModule._makeLong(path), modeNum(mode));
};

和第203行:

function modeNum(m, def) {
  switch (typeof m) {
    case 'number': return m;
    case 'string': return parseInt(m, 8);
    default:
      if (def) {
        return modeNum(def);
      } else {
        return undefined;
      }
  }
}

它采用八进制数字或字符串

e.g。

fs.chmodSync('test', 0755);
fs.chmodSync('test', '755');

它不适用于您的情况,因为文件模式仅存在于* nix机器上。

答案 1 :(得分:2)

指定八进制的正确方法如下:

fs.chmodSync('test', 0o755); 

在这里参考文件模式

https://nodejs.org/api/fs.html