Ich arbeite derzeit daran, einen Echtzeit-Chat in eine bestimmte Website hinzuzufügen. Ich verwende Express JS-Paket und die Initialisierungsinformationen (d. H. Start/Listener-Server usw.) befinden sich (standardmäßig) in "www/bin".kann nicht app.get ('foo') (Express/Node JS)
Also, das ist meine Init-Datei (dh ‚www/bin‘):
/**
* 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);
Und die Sache ist, dass ich nicht ‚get‘ diese SocketIO Erklärung, wie ich in einem der Router-Dateien müssen Nachrichten zwischen Client/Server austauschen. Hier
ist diese Route-Datei:
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;
Also, wenn ich zu app.get versuchen ('socketio)' es gibt undefined
Wissen Sie, wie muss ich richtig dieses app.get('socketio',io)
erklären so dass ich es kann überall zugreifen (aber nicht in die Anforderungsmethoden)
Fehler:
chat.js:15
io.on('connection', function(socket){
^
TypeError: Cannot read property 'on' of undefined