【问题标题】:Socket.io Syntax not Recognized on Server服务器上无法识别 Socket.io 语法
【发布时间】:2018-12-21 21:18:20
【问题描述】:

节点服务器无法理解socket.io 语法,即使安装了所有软件包。

当我使用 nodejs server.js 在本地运行我的服务器时,它运行良好。但是,当我尝试在我的 Ubuntu 服务器上运行它时,它似乎不理解这一行:

socket.on( 'client-data', ( serverpackage ) => {
                                            ^
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 Function.Module.runMain (module.js:497:10)
    at startup (node.js:119:16)
    at node.js:902:3

我的 Ubuntu 服务器上的目录是 user/server,其中包含我所有的服务器模块。 Socket.io 已安装,我什至检查以确保 socket.io 的所有依赖项也都在那里。

NodeJS-Socket-server-with-DB@1.0.0 /home/<user>/server
└── socket.io@2.1.1

我也在运行这个版本的nodejs:

<user>@host*****:~/server$ nodejs -v
v0.10.25

【问题讨论】:

    标签: node.js ubuntu npm server socket.io


    【解决方案1】:

    您不能使用箭头函数。您需要至少版本 4 的节点,但版本 6 提供与箭头函数的完全兼容性。

    要解决您的问题,只需更新节点或更改为常规功能,例如:

    socket.on( 'client-data', function (serverpackage) {
    

    【讨论】:

    • 你不应该在我看来,如果你想使用函数,但问题是你有一个非常过时的节点版本,不再支持,你应该安装最新版本,或者LTS 一个。
    • 我同意@MarcosCasagrande 更新 Node 会是一个更好的解决方案,但我正在为用户问题提供即时修复。
    • 是的,您的回答提供了实际问题的答案。我只是告诉 OP 他应该更新节点。
    • 我不是服务器管理员,我可以在我的个人目录中本地更新节点吗?或者我应该联系管理员。
    • 我的意思是你可以在本地更新它以进行开发,但如果你的服务器运行的是旧节点风格,你也需要在那里更新它。
    【解决方案2】:

    你的nodejs版本不理解箭头功能,如果你想使用,请检查更新。

    如果不是,请将箭头功能改为正常功能。

    检查Node.js ES2015 Support

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-12-12
      • 1970-01-01
      • 1970-01-01
      • 2021-10-04
      • 2020-02-20
      • 2023-03-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多