首页 > 解决方案 > 服务器上无法识别 Socket.io 语法

问题描述

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.jsubuntunpmserversocket.io

解决方案


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

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

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

推荐阅读