web-dev-qa-db-fra.com

comment éviter "Les littéraux octaux ne sont pas autorisés en mode strict" avec createWriteStream

J'ai le code suivant

 fs.createWriteStream( fileName, {
        flags    : 'a',
        encoding : 'utf8',
        mode     : 0644
    });

Je reçois une erreur de peluche

Octal literals are not allowed in strict mode.

Quelle est la bonne façon de faire ce code afin que je n'obtienne pas d'erreur de charpie?

38
guy mograbi

Je n'ai pas d'installation de nœud à portée de main, mais en regardant sources il semble qu'ils autorisent également les chaînes:

  mode     : '0644'

Est-ce que ça marche?

27
georg

Vous pouvez les écrire comme ceci:

 mode     : parseInt('0644',8)

Dans le nœud et dans les navigateurs modernes (voir compatibilité ), vous pouvez utiliser des littéraux octaux:

 mode     : 0o644
52
Denys Séguret

J'ai rencontré ce problème lors de son utilisation dans une séquence d'échappement:

console.log('\033c'); // Clear screen

Tout ce que j'avais à faire était de le convertir en hexadécimal

console.log('\x1Bc'); // Clear screen
48
ariel