Я использую Mocha / Chai для модульного тестирования библиотеки, которая недавно начала использовать объекты буфера nodejs для решения другой проблемы.

Я получаю это сообщение об ошибке в модульном тесте:

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)

В строке 29 index.js я использую буфер nodejs ...

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

Я не могу найти полифил или обходной путь, поэтому буду благодарен за предложения.

Благодарность

22
VorpalSword 27 Апр 2016 в 23:08

3 ответа

Лучший ответ

Возможно, вы используете старую версию Node.js.

Buffer.from был представлен в версии 6.0.0:

Чтобы сделать создание объектов Buffer более надежным и менее подверженным ошибкам, различные формы конструктора new Buffer () устарели и заменены отдельными методами Buffer.from (), Buffer.alloc () и Buffer.allocUnsafe (). .

Этот метод не упоминается в предыдущих версиях документации.

Вы можете выполнить обновление до 6.0.0 или использовать устаревший API конструктора, который имеет следующую сигнатуру:

new Buffer(str[, encoding])
43
Роман Парадеев 28 Апр 2016 в 20:17

Бывают случаи, когда сложно обновить версию узла, особенно если вы используете на производстве, поэтому другое решение

Используйте "kafka-node": "1.6.2" или меньше

0
abhinav pandey 7 Май 2019 в 07:14

У меня тоже такая же ошибка. Вы можете попробовать это

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

Второй параметр - кодировка (необязательно). По умолчанию кодировка будет utf-8

5
Mandeep Singh 28 Апр 2016 в 16:02