根據Quill的建議,我再次發佈這個。我第一次發佈「npm更新節點」解決了這個問題。(教程)腳本不運行SyntaxError:塊範圍聲明
我從Packtpub.com購買了一個名爲「使用NodeJs和MongoDB進行Web開發」的教程,我想運行示例教程代碼。這裏是一個例子:
#!/usr/bin/env node
console.log('Argument vector');
console.log(process.argv);
let args = process.argv.slice(2);
console.log('\nArguments after slicing');
console.log(args);
let name = args[0];
if (!name) {
throw Error('\nYou have not given your name, bye');
}
console.log('\nHello ' + name);
所以我下載並安裝Node-v5.6.0-x64.msi。爲什麼會出現錯誤,當我使用let命令:
-*- mode: compilation; default-directory: "c:/Users/v-sihein/Documents/books/2016/javascript/Web Development with Node.JS and MongoDB/3413OS_Section 01_Code/1/1.3/" -*-
Compilation started at Sat Feb 13 16:25:01
node 03-hello-arguments.js siegfried
c:\Users\v-sihein\Documents\books\2016\javascript\Web Development with Node.JS and MongoDB\3413OS_Section 01_Code\1\1.3\03-hello-arguments.js:9
let args = process.argv.slice(2);
^^^
SyntaxError: Block-scoped declarations (let, const, function, class) not yet supported outside strict mode
at exports.runInThisContext (vm.js:53:16)
at Module._compile (module.js:387:25)
at Object.Module._extensions..js (module.js:422:10)
at Module.load (module.js:357:32)
at Function.Module._load (module.js:314:12)
at Function.Module.runMain (module.js:447:10)
at startup (node.js:140:18)
at node.js:1001:3
Compilation exited abnormally with code 1 at Sat Feb 13 16:25:01
現在,如果我改變「讓」 s到「VAR」當時的工作!
我之前有過這個問題(幾天前)和「npm更新節點」修復了這個問題(我想 - 也許我錯誤地用「var」而不是「let」運行了該版本)。不過,我已經重新安裝了Windows 10,現在「npm更新節點」不再解決問題。
那麼javascript和ecmascript的哪些版本可以期望能夠在節點v5.6.0中執行?我一直在boogle搜索,我無法找到一個簡單的javascript功能表,用於不同版本的節點和JavaScript。我想知道版本節點支持javascript/ecmascript的版本對於每個節點程序員都是非常基本的/重要的信息!有人可以指我到這樣的桌子嗎?
我買了一個錯誤的教程嗎?我認爲作者使用Linux或MAC,我正在使用Windows。不應該在mac/linux和windows上以同樣的方式工作嗎?
請告訴我,這個程序是否適合您的計算機。請務必提及您是否運行mac,unix,linux或windows(或其他?)。
感謝 齊格弗裏德
要麼''在你的代碼中使用strict'',要麼使用'--harmony_sloppy_let'命令行開關或'--use_strict'命令行開關 –
你需要驗證你的node.js版本是什麼實際運行。 'node -v'會告訴你。 – jfriend00
標題不是很具描述性。至於Node支持的語言功能,請參閱https://nodejs.org/en/docs/es6/。 –