Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Node.js、express、socket.io应用程序连接错误_Javascript_Node.js_Express_Socket.io - Fatal编程技术网

Javascript Node.js、express、socket.io应用程序连接错误

Javascript Node.js、express、socket.io应用程序连接错误,javascript,node.js,express,socket.io,Javascript,Node.js,Express,Socket.io,我有一个简单的应用程序,它将socket.io模块用于node.js。 当我使用node express_server.js命令运行服务器时,它工作正常,但当我想打开http://localhost:8080页面在浏览器中,节点抛出错误: /home/tomek/dev/node/node_modules/express/lib/application.js:119 this._router.handle(req, res, function(err) { ^

我有一个简单的应用程序,它将socket.io模块用于node.js。 当我使用
node express_server.js
命令运行服务器时,它工作正常,但当我想打开
http://localhost:8080
页面在浏览器中,节点抛出错误:

 /home/tomek/dev/node/node_modules/express/lib/application.js:119
  this._router.handle(req, res, function(err) {
              ^
TypeError: Cannot read property 'handle' of undefined
    at Function.app.handle (/home/tomek/dev/node/node_modules/express/lib/application.js:119:15)
    at Server.app (/home/tomek/dev/node/node_modules/express/lib/express.js:28:9)
    at Manager.handleRequest (/home/tomek/dev/node/node_modules/socket.io/lib/manager.js:565:28)
    at Server.<anonymous> (/home/tomek/dev/node/node_modules/socket.io/lib/manager.js:119:10)
    at Server.EventEmitter.emit (events.js:110:17)
    at HTTPParser.parserOnIncoming [as onIncoming] (_http_server.js:504:12)
    at HTTPParser.parserOnHeadersComplete (_http_common.js:111:23)
    at Socket.socketOnData (_http_server.js:357:22)
    at Socket.EventEmitter.emit (events.js:107:17)
    at readableAddChunk (_stream_readable.js:156:16)
和index.html:

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Chat application</title>
</head>
<body>
<script src="/socket.io/socket.io.js"></script>
<script>
    var server = io.connect('http://localhost:8080');
</script>   
</body>
</html>

聊天应用程序
var server=io.connect('http://localhost:8080');

Express是一个框架,它取代了“http”模块。您似乎试图同时使用两者。试试这个:

var express = require('express'),
var app = express();

app.get('/', function(req, res) {
  res.sendfile('index.html');
});

var port = Number(process.env.PORT || 8080);
app.listen(port, function() {
  console.log("Listening on " + port);
});

Ben在get方法上的轻推值得称赞。

没有定义路由器。在创建应用程序(var app=express())后尝试添加此项:


+1.轻微调整。res.sendfile('index.html');
var express = require('express'),
var app = express();

app.get('/', function(req, res) {
  res.sendfile('index.html');
});

var port = Number(process.env.PORT || 8080);
app.listen(port, function() {
  console.log("Listening on " + port);
});
app.get('/', function(req, res) {
    // res.send('hello world');
    res.sendfile('index.html');
});