2014-01-17 30 views
0

我是node.js的初学者,对不起,如果我出错了。
访问socket.on函数中的请求参数

要获得URL方式通本地主机参数:3000 = ID男人& FM = GILLI我用

app.get('/',function(req, res){ 
    var now = req.query.id; 

    res.sendfile(__dirname + '/index.html'); 

    }); 

我怀疑是我想在socket.on函数访问FM,对于我已经试过这样

  io.sockets.on('connection',function(socket){ 

       socket.nickname = req.query.fm; //here I accessed it 
      users[socket.nickname] = socket; 

     }); 

但它越来越错误:

 req is not defined. 

这里的一个条件是我们不应该在全局变量中存储fm参数,意味着我们必须直接访问在io.socket函数中通过url传递的参数。

即:在下面的代码中,fm不应该像id参数那样访问。

我总代码:

var express = require('express'), 
    app = express(), 
server = require('http').createServer(app), 
io = require('socket.io').listen(server), 
mongoose = require('mongoose'), 
    users = {}, 
now, 
other; 

    server.listen(3000); 





     app.get('/',function(req, res){ 
      now = req.query.id; 

      res.sendfile(__dirname + '/index.html'); 

     }); 

     io.sockets.on('connection',function(socket){ 

       socket.nickname = now; // parameter id stored here using a global variable 

       users[socket.nickname] = socket; 





socket.on('send message',function(data, callback){ 
    var msg = data; 


     var name = req.query.fm; //here I got error 
     var msg = msg; 
     if(name in users){ 

       }else{ 
     callback('Error enter a valid user.'); 
     } 

    }); 

}); 

回答