web-dev-qa-db-fra.com

Obtenir TypeError: ce n'est pas un tableau typé utilisant Buffer.from dans mocha

J'utilise Mocha/Chai pour tester unitairement une bibliothèque qui a récemment commencé à utiliser les objets Buffer de nodejs pour résoudre un problème différent.

J'obtiens ce message d'erreur lors du test unitaire:

TypeError: this is not a typed array. 
at Function.from (native) 
at Object.hashesMatch (index.js:29:18
at Context.<anonymous> (test/test.js:25:22)

La ligne 29 de index.js est l'endroit où j'utilise le tampon de nodejs ...

var b = Buffer.from ('some string or other');

Je ne trouve pas de polyfill ou de solution de contournement, donc je serais reconnaissant pour vos suggestions.

Merci

22
VorpalSword

Vous utilisez peut-être une ancienne version de Node.js.

Buffer.froma été introduit dans la version 6.0.0:

Pour rendre la création d'objets Buffer plus fiable et moins sujette aux erreurs, les différentes formes du nouveau constructeur Buffer () ont été dépréciées et remplacées par des méthodes Buffer.from (), Buffer.alloc () et Buffer.allocUnsafe () distinctes. .

Il n'y a aucune référence à cette méthode dans versions précédentes de la documentation.

Vous pouvez soit mettre à jour vers 6.0.0 ou utiliser une API de constructeur obsolète, qui a la signature suivante:

new Buffer(str[, encoding])

J'ai également eu la même erreur. Vous pouvez essayer ceci

var b = new Buffer('some string or other');

Le deuxième paramètre est l'encodage (facultatif). Par défaut, l'encodage sera utf-8

5
Mandeep Singh

Il y a des moments où il est difficile de mettre à jour la version du nœud, surtout si vous utilisez en production, donc une autre solution est

utilisez "kafka-node": "1.6.2" ou moins

0
abhinav pandey