Получение 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 или обходной путь, поэтому был бы благодарен за предложения.
Спасибо
Ответы
Ответ 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" или меньше