2016-04-25 18 views
3

私はnode.jsを学んでおり、readlineをプロジェクトに使用する必要があります。私はreadline module exampleから直接次のコードを持っています。Node.js readline:予期しないトークン=>

const readline = require('readline'); 

const rl = readline.createInterface({ 
    input: process.stdin, 
    output: process.stdout 
}); 

rl.question('What do you think of Node.js? ', (answer) => { 
    // TODO: Log the answer in a database 
    console.log('Thank you for your valuable feedback:', answer); 

    rl.close(); 
}); 

しかし、私は node try.jsコマンドを使用してコードを実行すると、それは以下のようなエラーを配っ保つ:

rl.question('What is your favorite food?', (answer) => { 
                ^^ 
SyntaxError: Unexpected token => 
    at exports.runInThisContext (vm.js:73:16) 
    at Module._compile (module.js:443:25) 
    at Object.Module._extensions..js (module.js:478:10) 
    at Module.load (module.js:355:32) 
    at Function.Module._load (module.js:310:12) 
    at Function.Module.runMain (module.js:501:10) 
    at startup (node.js:129:16) 
    at node.js:814:3 
+3

使用しているノードのバージョンはどれですか? ES6の矢印構文をサポートしていない可能性があります。 – Tushar

+1

ノードをアップグレードする – DININDU

+0

問題が解決されたように見えるので、最良の回答を受け入れることができれば素晴らしいでしょう。 – CherryDT

答えて

8

Arrow functionsECMAScript 6 standardの新機能の一つ、トンを導入されましたo node.js(安定した機能として)version 4.0.0のみ。

あなたはNode.jsのバージョンをアップグレードするか、次のようになります古い構文、使用することができ、次のいずれか

rl.question('What do you think of Node.js? ', function(answer) { 
    // TODO: Log the answer in a database 
    console.log('Thank you for your valuable feedback:', answer); 

    rl.close(); 
}); 

を(それらの構文の間に1つの以上差があることに注意してください:this変数は動作が異なります。この例では重要ではありませんが、それ以外の場合もあります)

+0

ありがとうございました!それが問題を解決しました。申し訳ありませんが、私はupvoteに十分な評判を持っていません。私はWindows上にあり、バージョン番号は0.12.2で、4.0.0と比較して実際に古いようです。しかし、私はそれをnpmでアップグレードすることはできません(私はWindows上で、 "npm install -g n"コマンドを使用しています)。何故ですか? – user3700129

+0

古いバージョンでnpm自体を使ってアップグレードするのにも問題がありましたが、原因はわかりませんが、node.jsのWebサイトから最新バージョンをダウンロードしました(https://nodejs.org/en/download /)してインストールしてください。 (そして、その間、私は、Windows用の素晴らしいパッケージマネージャである[Chocolatey](https://chocolatey.org/)に切り替えました。ノードをアップグレードするために 'cup nodejs.install'と入力することです) – CherryDT

+0

Iちょうどチョコを通ってそれをインストールしました。それは完璧に働いた! – user3700129

0

アロー機能として知られている=>構文は、比較的新しい機能でありますJavaScript。同じように新しいバージョンのNodeが必要です。

0

ノードのバージョンをアップグレードします。今

アロー機能ノード(バージョン4.0.0)で動作し、ここを参照してください。ECMAScript 2015 (ES6) in Node.js

チェックをあなたはnode -v

あなたで実行されているバージョンを確認するためにそうするためにここに適合表をチェックしてくださいアップグレードする必要があります利用できる他に何を参照してください。

Node Compatibility Table

関連する問題