Подтвердить что ты не робот

Как использовать chmod с Node.js

Как использовать chmod с Node.js?

В пакете fs есть метод, который должен это сделать, но я не знаю, что он принимает в качестве второго аргумента.

fs.chmod(путь, режим, [обратный вызов])

Асинхронный chmod (2). Никакие аргументы, кроме возможного исключения, не передаются обратному сообщению завершения.

fs.chmodSync(путь, режим)

Синхронный chmod (2).

(из Node.js documentation)

Если я что-то вроде

fs.chmodSync('test', 0755);

ничего не происходит (файл не изменяется в этом режиме).

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

тоже не работает.

Я работаю на машине под управлением Windows.

4b9b3361

Ответ 1

в соответствии с его исходным кодом /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.