Node.js,Express,Socket.io应用程序连接错误 [英] Node.js, express, socket.io app connection error

查看:55
本文介绍了Node.js,Express,Socket.io应用程序连接错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I've got a simple app which uses socket.io module for node.js. When i run my server with node express_server.js command it works ok, but when i want to open my http://localhost:8080 page in browser, node throws an error:

 /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)

我的express_server.js文件如下:

My express_server.js file looks like:

var express = require('express'),
    socket = require('socket.io'),
    http = require ('http');

var app = express();
server = http.createServer(app);
server.listen(8080);
var io = socket.listen(server);



io.sockets.on('connection', function (client) {
    console.log('-- Client connected --');
});

和index.html:

and 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 app = express()):

There is no router defined. Try add this after creating the app (var app = express()):

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

这篇关于Node.js,Express,Socket.io应用程序连接错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆