0

我试图在 app.post 上的 routes.js 中发出事件,但我得到了这个错误:因为没有方法'emit'。

应用程序.js:

app.io.route('setOnlineServer', function (req) {
Account.setOnline(req.user); 
});

路由.js

app.post('/login', passport.authenticate('local'), function(req, res) {
    req.io.emit('setOnlineServer',req.user);
    res.redirect('/');
});

如果我不能得到这样的用户。任何想法来获得经过身份验证的用户?

4

1 回答 1

0

服务器 (app.js)

app = require('express.io')()
app.http().io()

// Broadcast the new visitor event on ready route.
app.io.route('ready', function(req) {
   req.io.broadcast('new visitor')
})

// Send client html.
app.get('/', function(req, res) {
res.sendfile(__dirname + '/client.html')
})

app.listen(7076)

客户端 (client.html)

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script src="/socket.io/socket.io.js"></script>
<script>
io = io.connect()

// Send the ready event.
io.emit('ready')

// Listen for the new visitor event.
io.on('new visitor', function() {
    $('body').append('<p>New visitor, hooray! ' + new Date().toString() +'</p>')
})
</script>
于 2013-08-14T03:41:08.577 回答