linux node.js 中的意外标识符 "let"
Unexpected identifier "let" in linux node.js
我在 node.js 中有一个循环看起来像
for(let i=0; i < req.body.Node_Config.length;i++){
//code
}
在windows
中完美工作
但是当我将它上传到基于 linux 的网络服务器时,它给我错误
for(let i=0; i < req.body.Node_Config.length;i++){
^
SyntaxError: Unexpected identifier
at Module._compile (module.js:439:25)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Module.require (module.js:364:17)
at require (module.js:380:17)
at Object.<anonymous> (/opt/OSPL_node/app.js:33:18)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Function.Module.runMain (module.js:497:10)
at startup (node.js:119:16)
问题不在于OS,应该是一样的。
我认为这是因为 Node 版本,请确保两种情况下的版本相同。
特别是您应该使用 Node.js 与 ES6
兼容的版本,在您的代码中它失败了,因为它无法识别 let
。
Here 您有一个与 let
兼容的版本列表。
正如 Antonio 的回答所说,最简单也可能是最好的方法是升级 Node。
但如果这不可能,另一种方法是使用像 Babel 这样的转译器将您的 ES2016 代码转换为旧 Node 版本可以理解的 ES5 代码。您可能还需要一些 polyfill 库,例如 babel-polyfill 来为缺少的功能提供支持。
我在 node.js 中有一个循环看起来像
for(let i=0; i < req.body.Node_Config.length;i++){
//code
}
在windows
中完美工作但是当我将它上传到基于 linux 的网络服务器时,它给我错误
for(let i=0; i < req.body.Node_Config.length;i++){
^
SyntaxError: Unexpected identifier
at Module._compile (module.js:439:25)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Module.require (module.js:364:17)
at require (module.js:380:17)
at Object.<anonymous> (/opt/OSPL_node/app.js:33:18)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Function.Module.runMain (module.js:497:10)
at startup (node.js:119:16)
问题不在于OS,应该是一样的。
我认为这是因为 Node 版本,请确保两种情况下的版本相同。
特别是您应该使用 Node.js 与 ES6
兼容的版本,在您的代码中它失败了,因为它无法识别 let
。
Here 您有一个与 let
兼容的版本列表。
正如 Antonio 的回答所说,最简单也可能是最好的方法是升级 Node。
但如果这不可能,另一种方法是使用像 Babel 这样的转译器将您的 ES2016 代码转换为旧 Node 版本可以理解的 ES5 代码。您可能还需要一些 polyfill 库,例如 babel-polyfill 来为缺少的功能提供支持。