Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Getting TypeError: this is not a typed array using Buffer.from in mocha

I'm using Mocha / Chai to unit test a library that has recently started using nodejs' Buffer objects to solve a different problem.

I get this error message in the 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)

Line 29 of index.js is where I'm using nodejs' Buffer...

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

I can't find a polyfill or workaround so would be grateful for suggestions.

Thanks

like image 499
VorpalSword Avatar asked Apr 27 '16 20:04

VorpalSword


2 Answers

You might be using an old version of Node.js.

Buffer.from was introduced in version 6.0.0:

To make the creation of Buffer objects more reliable and less error prone, the various forms of the new Buffer() constructor have been deprecated and replaced by separate Buffer.from(), Buffer.alloc(), and Buffer.allocUnsafe() methods.

There's no reference to this method in previous versions of documentiation.

You could either update to 6.0.0 or use a deprecated constructor API, which has the following signature:

new Buffer(str[, encoding])
like image 181
Роман Парадеев Avatar answered Nov 07 '22 22:11

Роман Парадеев


I also got the same error. You can try this

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

Second param is encoding (optional). By default encoding will be utf-8

like image 33
Mandeep Singh Avatar answered Nov 07 '22 21:11

Mandeep Singh