Javascript 使用Node.js、Vue.js+;Socket.io

Javascript 使用Node.js、Vue.js+;Socket.io,javascript,node.js,vue.js,express,socket.io,Javascript,Node.js,Vue.js,Express,Socket.io,我在这个聊天应用程序原型中得到了一个未捕获的TyperError HTML文件(还包含Vue.js脚本) 我使用以下命令在开发环境中运行代码 节点serverFileName.js并在http://localhost:3000/ 在服务器文件代码中,我能够成功地将消息记录到控制台(它显示在启动开发节点服务器的终端窗口中),但当我尝试使用socket.io将消息发送到客户端时,我在控制台上看到以下错误消息: Uncaught TypeError: Cannot read property 'app

我在这个聊天应用程序原型中得到了一个未捕获的TyperError

HTML文件(还包含Vue.js脚本)

我使用以下命令在开发环境中运行代码
节点serverFileName.js
并在
http://localhost:3000/

在服务器文件代码中,我能够成功地将消息记录到控制台(它显示在启动开发节点服务器的终端窗口中),但当我尝试使用socket.io将消息发送到客户端时,我在控制台上看到以下错误消息:

Uncaught TypeError: Cannot read property 'apply' of undefined at  
  Socket../node_modules/component-emitter/index.js.Emitter.emit (index.js:145)  
index.js中指定行的代码如下:

  if (callbacks) {
    callbacks = callbacks.slice(0);
    for (var i = 0, len = callbacks.length; i < len; ++i) {
      callbacks[i].apply(this, args);
    }
  }
if(回调){
callbacks=callbacks.slice(0);
for(var i=0,len=callbacks.length;i

为什么这个发出函数失败了?

socket.on('message',(msg)=>{io.emit('message',msg))}
既然您在前面的一行已经收到了这个消息,第二行就没有定义它
io.on('connection',(socket)=>{socket.on('message',(msg)=>{console.log(msg);io.emit('message',msg);}})
@kallosz我想你是对的,我不应该使用多余的“socket.on”语句。但是,当我尝试在您的注释中使用该代码时,它导致了相同的错误。
Uncaught TypeError: Cannot read property 'apply' of undefined at  
  Socket../node_modules/component-emitter/index.js.Emitter.emit (index.js:145)  
  if (callbacks) {
    callbacks = callbacks.slice(0);
    for (var i = 0, len = callbacks.length; i < len; ++i) {
      callbacks[i].apply(this, args);
    }
  }