当我在本地主机上使用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
。
服务器.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/