javascript - Node JS : io is not defined error on frontend

标签 javascript node.js sockets heroku

当我在本地主机上使用nodemon运行我的nodejs应用程序时,在前端,socket.io不会显示,如果我输入/socket.io/socket.io。 url 末尾的 js ,没有显示套接字库。我得到的错误如下: Chrome Debug Error msg

我已经在代码的服务器端和客户端设置了 socket.io 并安装了软件包。

这是代码中socket.io的声明错误,还是socket.io的系统错误? [我正在使用 localhost 和 Heroku]

编辑: 更改了 index.html 文件中的语法错误,并将 app.listen 更改为 server.listen

New Chrome Error msg

<小时/>

服务器.js:

const path = require('path');
const http = require('http');
const express = require('express');
const socketIO = require('socket.io');

const publicPath = path.join(__dirname, '../public');
const port = process.env.PORT || 3000;
var app = express();
var server = http.createServer(app);
var io = socketIO(server);

app.use(express.static(publicPath));

io.on('connection', (socket) => {
  console.log('New user connected');

  socket.on('disconnect', () => {
    console.log('User was disconnected');
  });
});

server.listen(port , () => {
  console.log(`Server is up on port ${port}`);
});
<小时/>

index.html(客户端):

<!DOCTYPE html>

<html>

<head>
  <meta charset="utf-8">

</head>

<body>
  <p>Welcome to the chat app</p>

  <script src="/socket.io/socket.io.js"></script>
  <script>
    var socket = io();

    socket.on('connect', () => {
      console.log('Connected to server');
    });

    socket.on('disconnect', () => {
      console.log('Disconnected from server');
    });
  </script>
</body>

package.json:

{
  "name": "chat-app",
  "version": "1.0.0",
  "description": "",
  "main": "server/server.js",
  "scripts": {
    "start": "node server/server.js",
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "engines": {
    "node": "8.8.1"
  },
  "author": "",
  "license": "ISC",
  "dependencies": {
    "cors": "^2.8.4",
    "express": "^4.16.2",
    "socket.io": "^2.0.4"
  }
}

最佳答案

您的 html 文件中有一个拼写错误。替换这一行:

<script> src="/socket.io/socket.io.js"></script>

<script src="/socket.io/socket.io.js"></script>

从屏幕截图中可以看出“SyntaxError:意外的输入结束”。

关于javascript - Node JS : io is not defined error on frontend,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47838637/

相关文章:

node.js - 是否可以让 ffmpeg-concat 在 Windows 中运行?

node.js - NodeJs/Electron : How to wait for function to finish before ipcMain send back his answer?

javascript - 将字符串(Revit 公式)转换为 JavaScript 对象

javascript - 三.js : Pass text instead of particles into particle cloud

javascript - javascript/html canvas 性能低下

sockets - sslscan.c :94:25: fatal error: openssl/err. h : No such file or directory compilation terminated. #163

java - java.net.Socket.setSoTimeout(...) 什么时候抛出 SocketException?

javascript - 对象原型(prototype)包含在数组中

javascript - NPM 脚本需要准确的文件名

c - gethostbyname 在 Fedora 32 位上工作正常,但在 64 位上失败