我正在使用带有express的socketIO。
在我的项目中,我有一个登录页面和一个主页。
当我成功登录我导航到本地主机:3000 / home,我得到这个错误:
GET http://localhost:3000/socket.io/?EIO=3&transport=polling&t=1418187395022-0 404 (Not Found)
我没有在我的app.js(由express创建的项目)中进行任何修改。
Index.js:
var express = require('express'); var router = express.Router(); var http = require('http'); var fs = require('fs'); var io = require('socket.io')(http); /* GET home page. */ router.get('/',function(req,res) { res.render('index',{ title: 'Express' }); }); router.get('/home',res) { res.render('home',{ title: 'Express' }); }); io.on('connection',function(socket){ console.log("User Connected"); socket.on('chat message',function(msg){ io.emit('chat message',msg); console.log("Message"); }); socket.on('disconnect',function(msg){ console.log("User disConnected"); }); }); router.post('/authenticate',res) { fs.readFile("./public/Verification/Users.json","utf8",function (err,data) { if (err) console.log(err); else{ var result = JSON.parse(data); for(var i=0;i<result.Users.length;i++){ if(req.body.username == result.Users[i].username && req.body.password == result.Users[i].password){ console.log("Success!!!!!!!!!!!!!!"); res.location("home"); res.redirect("home"); } } } }); }); module.exports = router;
当我导航到localhost:3000 / home时,我会收到此错误。我是新来的socketIO和express。
请告诉我,如果我错过了一些东西。
谢谢
编辑:
在我的layout.jade中我定义了这样的socketio:
script(src='https://cdn.socket.io/socket.io-1.2.0.js')
解决方法
如果您正在运行Express 4,在我看来,您似乎缺少代码行:
var app = express(); var server = app.listen(3000);
这将启动您的Web服务器并将其设置为端口3000.请参阅骨骼简单的Express 4应用程序:http://expressjs.com/4x/api.html
然后,要启动socket.io,你可以添加:
var io = require('socket.io').listen(server);
而且,这行不需要:
var http = require('http');