2016-12-05 4 views
0

wit.ai quickstart tutorialを経由してノード(バージョン4.5.0 LTS)からエラーが発生しましたが、コードにエラーが表示されませんそしてまた、それはwit.aiから直接ダウンロードサンプルコードです:wit.ai quickstart.jsノードからのエラー、予期しないトークン{

examples\quickstart.js:39 
const {sessionId, context, entities} = request; 
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 

また、gitのからのダウンロードのコードは、チュートリアルのページに表示されるコードとは異なっている:

コードはgitからクローン、example/quickstart.jsはこれです:

'use strict'; 

let Wit = null; 
let interactive = null; 
try { 
    // if running from repo 
    Wit = require('../').Wit; 
    interactive = require('../').interactive; 
} catch (e) { 
    Wit = require('node-wit').Wit; 
    interactive = require('node-wit').interactive; 
} 

const accessToken = (() => { 
    if (process.argv.length !== 3) { 
    console.log('usage: node examples/quickstart.js <wit-access-token>'); 
    process.exit(1); 
    } 
    return process.argv[2]; 
})(); 

// Quickstart example 
// See https://wit.ai/ar7hur/quickstart 

const firstEntityValue = (entities, entity) => { 
    const val = entities && entities[entity] && 
    Array.isArray(entities[entity]) && 
    entities[entity].length > 0 && 
    entities[entity][0].value 
    ; 
    if (!val) { 
    return null; 
    } 
    return typeof val === 'object' ? val.value : val; 
}; 

const actions = { 
    send(request, response) { 
    const {sessionId, context, entities} = request; 
    const {text, quickreplies} = response; 
    console.log('sending...', JSON.stringify(response)); 
    }, 
    getForecast({context, entities}) { 
    var location = firstEntityValue(entities, 'location'); 
    if (location) { 
     context.forecast = 'sunny in ' + location; // we should call a weather API here 
     delete context.missingLocation; 
    } else { 
     context.missingLocation = true; 
     delete context.forecast; 
    } 
    return context; 
    }, 
}; 

const client = new Wit({accessToken, actions}); 
interactive(client); 

が、チュートリアルでは、constのアクションのセクションでは、このする必要があります言う:

const actions = { 
    send(request, response) { 
    const {sessionId, context, entities} = request; 
    const {text, quickreplies} = response; 
    return new Promise(function(resolve, reject) { 
     console.log('sending...', JSON.stringify(response)); 
     return resolve(); 
    }); 
    }, 
    getForecast({context, entities}) { 
    return new Promise(function(resolve, reject) { 
     // Here should go the api call, e.g.: 
     // context.forecast = apiCall(context.loc) 
     context.forecast = 'sunny'; 
     return resolve(context); 
    }); 
    }, 
}; 

にかかわらず、両方のバージョンが同じエラーを与えます。

答えて

1

コード内のいくつかのECMAScript 6つの機能により、お使いのノードのバージョン< = 6.x.x場合、あなたはここに示すように、ノードのコマンドラインにフラグharmony_destructuringを追加する必要があり、ことが判明:

node --harmony_destructuring examples/quickstart.js 
関連する問題