如何在 Node.js 中使用 chmod?
包中有一个方法
fs
,应该这样做,但我不知道第二个参数是什么。
fs.chmod(路径,模式,[回调])
异步 chmod(2)。除了可能的异常之外,没有其他参数被提供给完成回调。
fs.chmodSync(路径,模式)
同步 chmod(2).
(来自 Node.js 文档)
如果我做类似的事情
fs.chmodSync('test', 0755);
什么都没有发生(文件没有更改为该模式)。
fs.chmodSync('test', '+x');
也不行。
顺便说一句,我正在 Windows 机器上工作。
/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 机器上。
在 Windows 上,您需要使用
fs.constants
或 fsPromises.constants
而不是八进制数字或字符串。例如,要将文件更改为以只读方式打开,您可以使用:
fs.chmodSync(filePath, fs.constants.O_RDONLY)
您可以在此处找到
fs.constants
的值:节点文件系统常量