【问题标题】:Node.js Express Server doesn't work on a different server, but works on my machineNode.js Express Server 不能在其他服务器上运行,但可以在我的机器上运行
【发布时间】:2016-11-23 15:44:20
【问题描述】:

当我在我的机器上运行我的 node.js 服务器时,它工作得非常好。但是,当我 ssh 进入从数字海洋获得的机器时,它会抛出此错误。我使用飞行计划将我的文件移动到机器上。

deploy@myserver:~/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
                    }
                });
            }

就像我说的,这在我的机器上运行良好。谢谢!

【问题讨论】:

  • 您的 droplet 可能安装了不支持该 ES6 语法的旧版本节点。您可以通过node -v 查询。支持这种特定语法的第一个 node 版本是 node v4.0.0。

标签: javascript node.js express


【解决方案1】:

更新节点到最新版本:

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

在那之后应该可以工作。

【讨论】:

    【解决方案2】:

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

    在你的情况下,vanilla JavaScript 不支持这个:

    [newValue]: {
        [UID]: ID
    }
    

    因此,您的node -v 可能会高于v6.0.0,但另一台服务器将是旧版本。 更新节点版本或使用带有预设的babel-node

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-03-01
      • 2012-07-24
      • 1970-01-01
      • 2021-10-30
      • 2019-03-07
      • 1970-01-01
      • 2023-04-04
      相关资源
      最近更新 更多