2016-06-28 3 views
0

Express와 함께 Passport js를 사용하고 있으며 응용 프로그램의 여러 구성 요소에서 현재 사용자의 세부 정보를 가져 오는 것에 대해 혼란 스럽습니다.Passport js로 현재 사용자 세부 정보 얻기

사용자 이름을 가져 와서 사용자가 소켓에 연결할 때 배열에 넣고 싶습니다. 내 server.js에서 route 및 socket.io 파일을 요구합니다.

require('./app/routes.js')(app, passport); 
require('./app/sockets.js').listen(server, passport); 

내 socket.js 파일에서 사용자가 연결할 때 일부 이벤트가 발생합니다.

var users = []; 
exports.listen = function(server, passport){ 
    var socketio = require('socket.io'); 
    io = socketio.listen(server); 

    io.on('connection', function(socket){ 
     users.push({ 
      id: socket.id 
     }); 
     socket.emit('new user', socket.id); 
     console.log('user count: ' + io.engine.clientsCount); 
     console.log('users length: ' + users.length); 

     socket.on('send message', function(message){ 
      if (/\S/.test(message)) { 
       io.sockets.emit('new message', message); 
       console.log('new message: ' + message); 
      } 
     }); 
     socket.on('disconnect', function(socket){ 
      console.log('user disconnected: ' + users.length); 
      users.splice(users.indexOf(socket.id), 1); 
     }); 
    }); 
}; 

라우트 파일에서 사용자 이름을 가져 와서보기로 전달할 수 있습니다. 요청이없는 파일로 세션의 세부 정보를 얻는 방법에 대해 혼란스러워합니다.

app.get('/chat', isLoggedIn, function(req, res){ 
     res.render('chat.ejs',{ 
      user : req.user // get the user out of session and pass to template 
     }); 

    }); 
+0

경로에서 실행되지 않은 코드에서 사용자를 얻는 방법을 묻는 중입니까? – leetibbett

+0

socket.js 파일 및 다른 파일의 세션에서 현재 사용자를 얻는 방법을 묻습니다. – Tom

+0

'socket '은 프로그래밍 레벨에서'socket.io'와 관련이 없습니다 ... 태그를 제거했습니다. 자세한 내용은 [tag : sockets] 태그 세부 정보를 참조하십시오. – Myst

답변

관련 문제