尝试使用连接时
this._socket = io('http://localhost:5000');
我收到错误 TypeError: io is not a function。 我可以在网络选项卡中看到 socket.io/socket.io.js 文件并且正在加载。 我已经使用 npm socket.io 安装了 socket.io 并且正在使用 socket.io-client 版本 1.3.6
这看起来确实是一个基本错误,更有可能是您的设置有问题。 随意重新打开。
有同样的问题。 什么设置?
我有同样的问题。 什么设置?
有同样的问题。 什么设置?
使用 Parcel.js / Typescript 作为 ES6 打包器的同样问题
import * as io from 'socket.io-client';
解决了这个问题。
如果使用普通的旧 JavaScript 会怎样?
使用io.connect()
而不是io()
。
io.connect() 无法解决问题,问题依旧
对我来说, @renatosvo和@Kacppian 的建议相结合是有效的:
import * as io from "socket.io-client";
let ioClient = io.connect();
同样的问题
当我导出它给我一个错误我的代码是
const express = require('express');
const router = express.Router();
var app = express();
const io = require('socket.io');
const fs = require('fs');
const { ensureAuthenticated } = require('../db/auth.js');
//exporting dashboard
module.exports = {
dash: router.get('/', (req,res)=>{
var chat = io.on('connection', (socket)=>{
console.log('chat is connected');
})
res.render('dashboard', {chat:chat});
})
}
我得到的错误是
io.on is not a function
TypeError: io.on is not a function
at E:\expressBasedLOginSignUP\routes\dashboard.js:13:19
at Layer.handle [as handle_request] (E:\expressBasedLOginSignUP\node_modules\express\lib\router\layer.js:95:5)
at next (E:\expressBasedLOginSignUP\node_modules\express\lib\router\route.js:137:13)
at Route.dispatch (E:\expressBasedLOginSignUP\node_modules\express\lib\router\route.js:112:3)
at Layer.handle [as handle_request] (E:\expressBasedLOginSignUP\node_modules\express\lib\router\layer.js:95:5)
at E:\expressBasedLOginSignUP\node_modules\express\lib\router\index.js:281:22
at Function.process_params (E:\expressBasedLOginSignUP\node_modules\express\lib\router\index.js:335:12)
at next (E:\expressBasedLOginSignUP\node_modules\express\lib\router\index.js:275:10)
at Function.handle (E:\expressBasedLOginSignUP\node_modules\express\lib\router\index.js:174:3)
at router (E:\expressBasedLOginSignUP\node_modules\express\lib\router\index.js:47:12)
at Layer.handle [as handle_request] (E:\expressBasedLOginSignUP\node_modules\express\lib\router\layer.js:95:5)
at trim_prefix (E:\expressBasedLOginSignUP\node_modules\express\lib\router\index.js:317:13)
at E:\expressBasedLOginSignUP\node_modules\express\lib\router\index.js:284:7
at Function.process_params (E:\expressBasedLOginSignUP\node_modules\express\lib\router\index.js:335:12)
at next (E:\expressBasedLOginSignUP\node_modules\express\lib\router\index.js:275:10)
at E:\expressBasedLOginSignUP\node_modules\express\lib\router\index.js:635:15
最有用的评论
使用
io.connect()
而不是io()
。