我在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)
答案 0 :(得分:2)
问题不在于操作系统,它应该是相同的。
我认为这是因为Node版本,请确保它们在两种情况下都是相同的。
特别是你应该使用版本与ES6
兼容的Node.js,在你的代码中它失败,因为它无法识别let
。
Here您有与let
兼容的版本列表。
答案 1 :(得分:1)
正如安东尼奥的回答所说,最简单也可能是最好的方法是升级Node。
但是如果不可能,另一种方法是使用像Babel这样的转换器将您的ES2016代码转换为旧版Node可以理解的ES5代码。您可能还需要一些像babel-polyfill这样的polyfill库来为缺少的功能提供支持。