意外的标识符"让"在linux node.js中

时间:2016-12-21 12:19:45

标签: javascript node.js linux express mean-stack

我在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)

2 个答案:

答案 0 :(得分:2)

问题不在于操作系统,它应该是相同的。

我认为这是因为Node版本,请确保它们在两种情况下都是相同的。

特别是你应该使用版本与ES6兼容的Node.js,在你的代码中它失败,因为它无法识别let

Here您有与let兼容的版本列表。

答案 1 :(得分:1)

正如安东尼奥的回答所说,最简单也可能是最好的方法是升级Node。

但是如果不可能,另一种方法是使用像Babel这样的转换器将您的ES2016代码转换为旧版Node可以理解的ES5代码。您可能还需要一些像babel-polyfill这样的polyfill库来为缺少的功能提供支持。