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.');
}
});
});
Thanks.Helped很多 –