Ich habe Kopfschmerzen und versuche, eine Variable an das Modul zu übergeben.nodejs Probleme bei der Übergabe eines Parameters an das Modul
In node.js Ich habe die folgende Verteilung:
Der node.js Server (server.js):
// modules =================================================
var express = require('express');
var app = express();
// configuration ===========================================
app.set('port', process.env.PORT || 3000);
var myRoutes = require('./my.router')(app);
// Start the Server ===========================================
app.listen(app.get('port'), function() {
console.log('Express server listening on port ' + app.get('port'));
});
exports = module.exports = app; // expose app
Der Router (my.router.js):
var myCtrl = require('./my.controller');
module.exports = function(app) {
app.get('/api/some', myCtrl.some);
app.get('/api/other', myCtrl.other);
}
die Steuerung (my.controller.js):
exports.some = function(req, res, next) {
res.send('some');
};
exports.other = function(req, res, next) {
res.send('other');
}
Das funktioniert ok. Meine Probleme treten auf, wenn ich versuche, socket.io zu verwenden und ein Ereignis auszulösen, wenn/api/some aufgerufen wird.
Ich brauche das App-Objekt, den Server zu erstellen, so dass ich den Router zu ändern:
var myCtrl = require('./my.controller');
module.exports = function(app) {
var server = require('http').createServer(app);
var io = require('socket.io')(server);
server.listen(3001);
app.get('/api/some', myCtrl.something);
app.get('/api/other', myCtrl.other);
}
Und ich ändern Sie den Controller das Ereignis zu emittieren, wenn sie/api/einige genannt:
exports.some = function(req, res, next) {
io.sockets.emit('my_event', {});
res.send('some');
};
exports.other = function(req, res, next) {
res.send('other');
}
In der Steuerung brauche ich das io-Objekt, um das zu machen.
Es klingt einfach für jemanden mit ein bisschen mehr Wissen über node.js, aber ich bin nicht in der Lage, es zum Laufen zu bringen.
Ich würde so etwas wie app.get müssen ('/ api/some', myCtrl.something (io)), aber das funktioniert nicht ...