发送的值不能添加到DIV express.js socket.io中

时间:2016-05-10 19:59:36

标签: javascript html node.js sockets socket.io

我有以下 app.js

var express = require('express');
var app = express();
// var responseHandlerRouter = require('./routes/responseHandlerRouter.js');

routes = require('./routes');

var server = app.listen(3000, function () {
  console.log('Example app listening on port 3000!');
});

io = require('/usr/local/lib/node_modules/socket.io').listen(server);

app.use('/', routes(io));

routes.js

var express = require('express');
var router = express.Router();

module.exports = function (io) {

    // all of this router's configurations

    router.get('/login', function (req, res, next) {
        io.emit('notification', 'news');
        res.end('well finally I am here');
    });

    return router;

}

的index.html

<!doctype html>
<html>
    <head>
        <script src="http://127.0.0.1:3000/socket.io/socket.io.js"></script>
        <script>

        var socket = io.connect('http://localhost:3000/login');

        socket.on('notification', function (data) {
            console.log(data);
        });
        </script>
    </head>
    <body>
        <ul id='messages'></ul>
    </body>
</html>

当我点击URL时,它应该发出但不会发生。它没有显示任何错误,但却无声地失败。

有什么不对吗?

更新

"news" was being sent from the router successfully.

我想在div中显示“新闻”。 但我无法按如下方式附加

   .... socket.on('notification', function (data) {
               $('#messages').html(data);
            });
            </script>
        </head>
        <body>
            <ul id='messages'></ul>
        </body>....

会使其有资格获得赏金

1 个答案:

答案 0 :(得分:0)

看起来你正在以错误的方式使用路由器。

不确定,但我认为app.use('/login', routes(io))而不是你所得到的应该可以解决问题。

在您的实施中,您的路由器只会收到'/'

的GET

编辑:虽然答案已被接受,但真正的解决方案是在下面的评论中(指定了错误的连接网址)