Cómo uso chmod con Node.js


Cómo uso chmod con Node.js?

Hay un método en el paquete fs, que debería hacer esto, pero no se lo que toma como segundo argumento.

Fs.chmod (path, mode, [callback])

Chmod asíncrono(2). No se da ningún argumento que no sea una posible excepción a la devolución de llamada de finalización.

Fs.chmodSync (path, mode)

Chmod síncrono(2).

(del nodo .js documentación)

Si hago algo como

fs.chmodSync('test', 0755);

No pasa nada (el archivo no se cambia a ese modo).

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

Tampoco funciona.

Estoy trabajando en una máquina Windows por cierto.

Author: Joe Flynn, 2012-01-06

1 answers

Según su código fuente /lib/fs.js en línea 508

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

Y línea 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;
      }
  }
}

Toma un número octal o una cadena

Por ejemplo

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

No funciona en su caso porque los modos de archivo solo existen en máquinas *nix.

 42
Author: qiao,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-08-23 07:35:09