현재 특정 웹 사이트에 실시간 채팅을 추가하려고합니다. Express JS 패키지를 사용 중이며 초기화 정보 (예 : 시작/수신 서버 등)는 'www/bin'(기본적으로)에 있습니다.app.get ('foo') (Express/Node JS)
그래서,이 내 init 파일 (예 : 'www /에서 빈')입니다 :
/**
* Module dependencies.
*/
var app = require('../app');
var debug = require('debug')('nodeblog:server');
var http = require('http');
/**
* Get port from environment and store in Express.
*/
var port = normalizePort(process.env.PORT || '3000');
app.set('port', port);
/**
* Create HTTP server.
*/
var server = http.createServer(app);
/**
* Listen to Sockets
*/
var io = require('socket.io').listen(server);
app.set('socketio', io); // FIXME: Cannot app.get('socketio') w/out req
/**
* Listen on provided port, on all network interfaces.
*/
server.listen(port);
server.on('error', onError);
server.on('listening', onListening);
는 그리고 것은 I가 라우터 파일 중 하나에서 필요로하는 나는이 SocketIO 선언을 '얻을'수 없다는 것입니다 클라이언트/서버간에 메시지 교환 나는 그것이
undefined
당신은 내가 올바르게 app.get('socketio',io)
를 선언 할 필요가 어떻게 아십니까 반환 ('socketio를)'app.get하려고 할 때, 그래서
var express = require('express');
var router = express.Router();
var app = express();
// Models
var auth = require('../models/auth');
var io = app.get('socketio');
router.get('/', auth.ensureAuthenticated, function(req, res, next) {
res.render('chat', {
title: 'Chat'
});
});
io.on('connection', function(socket){
console.log('a user connected');
socket.on('chat message', function(msg) {
io.emit('chat message', msg);
});
socket.on('disconnect', function(){
console.log('user disconnected');
});
});
module.exports = router;
: 여기
이 경로 파일입니다 나는 (요청 방법으로가 아니라) 어디서나 액세스 할 수 있도록오류 :
chat.js:15
io.on('connection', function(socket){
^
TypeError: Cannot read property 'on' of undefined