繁体   English   中英

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的Web服务器时,它给了我错误

 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)

问题与操作系统无关,应该相同。

我认为这是由于Node版本造成的,请确保在两种情况下都相同。

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

在这里,您可以看到与let兼容的版本。

正如Antonio的回答所说,最简单且可能最好的方法是升级Node。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM