Search code examples
node.jswit.ai

Unable to require node-wit


I had been using node-wit v3.3.2 Today, I wanted to update and use the latest version.

But I'm unable to import node-wit. Not sure why. I simply copied the code given in their documentation.

'use strict'
var MY_TOKEN="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

const {Wit, log} = require('node-wit');

const client = new Wit({
accessToken: MY_TOKEN,
actions: {
send(request, response) {
return new Promise(function(resolve, reject) {
console.log(JSON.stringify(response));
return resolve();
});
},
myAction({sessionId, context, text, entities}) {
console.log(Session ${sessionId} received ${text});
console.log(The current context is ${JSON.stringify(context)});
console.log(Wit extracted ${JSON.stringify(entities)});
return Promise.resolve(context);
}
},
logger: new log.Logger(log.DEBUG) // optional
});

The terminal shows this:

const {Wit, log} = require('node-wit');
^

SyntaxError: Unexpected token {
at exports.runInThisContext (vm.js:53:16)
at Module._compile (module.js:373:25)
at Object.Module._extensions..js (module.js:416:10)
at Module.load (module.js:343:32)
at Function.Module._load (module.js:300:12)
at Function.Module.runMain (module.js:441:10)
at startup (node.js:139:18)
at node.js:974:3

Solution

  • Could be the node version you are using. You'll need to use the flag --harmony_destructuring when using a lower version.

    Taken from: https://github.com/wit-ai/node-wit

    # Node.js <= 6.x.x, add the flag --harmony_destructuring
    node --harmony_destructuring examples/basic.js <MY_TOKEN>
    # Node.js >= v6.x.x
    node examples/basic.js <MY_TOKEN>