Node.js Express Server不能在不同的服务器上工作,但在我的机器上工作

Node.js Express Server不能在不同的服务器上工作,但在我的机器上工作

问题描述:

当我在我的机器上运行我的node.js服务器时,它工作得很好。但是,当我从一个数字海洋中获得一台机器时,它会抛出这个错误。我使用飞行计划将我的文件移动到机器上。Node.js Express Server不能在不同的服务器上工作,但在我的机器上工作

[email protected]:~/node-app/bin$ node www 

/home/deploy/node-app-1479873242669/routes/index.js:76 
         [newValue]: { 
         ^
SyntaxError: Unexpected token [ 
    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> (/home/deploy/node-app-1479873242669/app.js:36:18) 
    at Module._compile (module.js:456:26) 
    at Object.Module._extensions..js (module.js:474:10) 
    at Module.load (module.js:356:32) 

这是有关错误代码:

  if (isNaN(value)) { 
       newValue = 0; 
       console.log("queuer val " + newValue); 
       fbRef.update({ 
        [newValue]: { 
         [UID]: ID 
        } 
       }); 
      } 

就像我说的,这工作完全正常我的机器上。谢谢!

+0

您的液滴可能安装了不支持ES6语法的旧版节点。你可以用'node -v'来检查。支持这种特定语法的第一个节点版本是node v4.0.0。 – mscdex

更新节点到最新版本:

wget -qO- https://deb.nodesource.com/setup_6.x | sudo bash - 
sudo apt-get -y install nodejs 

后,应该工作。

使用计算密钥创建对象是ES2015 Standard(ES6)的一部分。见Object Initializer spec

你的情况,香草JavaScript不支持此:

[newValue]: { 
    [UID]: ID 
} 

那么可能是你的node -v将上面的东西v6.0.0,但其他的服务器将是一个旧版本。 更新节点版本或使用带预设的babel-node