Я использую 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');
Я не могу найти полифил или обходной путь, поэтому буду благодарен за предложения.
Благодарность
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])
Бывают случаи, когда сложно обновить версию узла, особенно если вы используете на производстве, поэтому другое решение
Используйте "kafka-node": "1.6.2" или меньше
У меня тоже такая же ошибка. Вы можете попробовать это
var b = new Buffer('some string or other');
Второй параметр - кодировка (необязательно). По умолчанию кодировка будет utf-8
Похожие вопросы
Связанные вопросы
Новые вопросы
node.js
Node.js — это основанная на событиях, неблокирующая, асинхронная среда выполнения ввода-вывода, использующая движок Google V8 JavaScript и библиотеку libuv. Он используется для разработки приложений, которые интенсивно используют возможность запуска JavaScript как на стороне клиента, так и на стороне сервера и, следовательно, выигрывают от возможности повторного использования кода и отсутствия переключения контекста.