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

Получение TypeError: это не типизированный массив, использующий Buffer.from in mocha

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

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

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 - это то, где я использую buffer_sys Buffer...

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

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

Спасибо

4b9b3361

Ответ 1

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

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

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

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

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

new Buffer(str[, encoding])

Ответ 2

Я также получил ту же ошибку. Вы можете попробовать это

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

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

Ответ 3

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

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