Fanooos Fanooos - 29 days ago 27
Node.js Question

nodejs SyntaxError: Unexpected token

I am using

elasticsearch-exporter
to export data from
Elasticsearch
.

The tool initially is a
nodejs
application.

When I try to use the following command
node exporter.js
to make the tool list all the available options, it crashes with the following exception

/home/me/storage/Elasticsearch-Exporter/log.js:54
exports.error = (...args) => !capture("ERROR", args) && console.log(timestamp() + util.format(...args).red);
^^^

SyntaxError: Unexpected token ...
at exports.runInThisContext (vm.js:53:16)
at Module._compile (module.js:374:25)
at Object.Module._extensions..js (module.js:417:10)
at Module.load (module.js:344:32)
at Function.Module._load (module.js:301:12)
at Module.require (module.js:354:17)
at require (internal/module.js:12:17)
at Object.<anonymous> (/home/anas/storage/Elasticsearch-Exporter/exporter.js:9:11)
at Module._compile (module.js:410:26)
at Object.Module._extensions..js (module.js:417:10)


here is the line where the exception is thrown

exports.error = (...args) => !capture("ERROR", args) && console.log(timestamp() + util.format(...args).red);


I think the error is related to a different version of nodejs but I am not sure.

Here is the output of the
node --version
command
v4.2.6


Here is the output of the
npm --version
command
3.10.6

Val Val
Answer

Yes, indeed, ... is called the spread operator and is only available since Node.js 6

The elasticsearch-exporter project declares in its package.json file that it only works with node version > 6

So since you're running Node.js 4.2.6, you either need to upgrade your Node.js installation or fork the elasticsearch-exporter project and modify it to work with Node.js 4.2.6.