2014-01-17 60 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.'); 
     } 

    }); 

}); 

回答