如何使用chmod与Node.js?
在包fs中有一个方法,它应该这样做,但我不知道它需要作为第二个参数。
fs.chmod(path,mode,[callback])
Asynchronous chmod(2). No arguments other than a possible exception are given to the completion callback.
fs.chmodSync(path,mode)
Synchronous chmod(2).
如果我做的事情
fs.chmodSync('test',0755);
没有发生任何事情(文件不改变到那个模式)。
fs.chmodSync('test','+x');
也不工作。
我正在一个Windows机器btw。
解决方法
根据它的源代码
/lib/fs.js
在线508
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; } } }
它需要一个八进制数或字符串
例如
fs.chmodSync('test',0755); fs.chmodSync('test','755');
它不适用于您的情况,因为文件模式仅存在于* nix机器上。