Согласно the docs, использование new Buffer(str)
устарело, и люди должны использовать Buffer.from(str)
. С другой стороны, Buffer.from
не был доступен в старых версиях узла. Согласно the docs он был добавлен в узел 5.10.0.Выберите «новый буфер» (str) »и« Buffer.from (str) »
Так что я предполагал, что я мог бы просто использовать такой код
buf = Buffer.from ? Buffer.from(str) : new Buffer(str);
, чтобы избежать предупреждений Deprecation при сохранении совместимости с более старыми версиями узла. Оказывается, это не работает должным образом. Некоторые старые версии узла, кажется, есть from
метод, но несовместимый тот, который генерирует исключение:
TypeError: this is not a typed array.
at Function.from (native)
Так как я бы идти о выборе правильной версии? Должен ли я как-то проверить process.version
? Или есть какое-то более чистое решение, которое может быть лучше подходит для возможности других двигателей, совместимых, но не идентичных узлу?