Lorsque vous essayez de vous connecter en utilisant
this._socket = io('http://localhost:5000');
J'obtiens l'erreur TypeError : io n'est pas une fonction. Je peux voir le fichier socket.io/socket.io.js dans l'onglet réseau et est en train de se charger. J'ai installé socket.io à l'aide de npm socket.io et j'utilise socket.io-client version 1.3.6
Cela ressemble vraiment à une erreur de base et il s'agit plus probablement d'un problème avec vos paramètres. N'hésitez pas à rouvrir.
avoir le même problème. Quels paramètres ?
J'ai le même problème. Quels paramètres ?
avoir le même problème. Quels paramètres ?
Même problème ici en utilisant Parcel.js / Typescript comme bundler ES6
importer * en tant qu'io depuis 'socket.io-client' ;
résout le problème.
Et si vous utilisiez du JavaScript simple et ancien ?
Utilisez io.connect()
au lieu de io()
.
io.connect() ne peut pas résoudre le problème, le problème est toujours là
pour moi, la combinaison des suggestions @renatosvo et @Kacppian a fonctionné :
importer * en tant qu'io depuis "socket.io-client" ;
let ioClient = io.connect();
même problème
quand j'exporte, cela me donne une erreur mon code est
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});
})
}
et l'erreur que j'obtiens est
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
Commentaire le plus utile
Utilisez
io.connect()
au lieu deio()
.