Ниже приведено приложение app.js, настроенное для функций socket.io. Все работает так, как ожидалось, но теперь я хочу использовать эту функцию сокета, другой js-файл из того же проект, как это сделать?Использование модулей socket.io в других JS-файлах
var app = require('express')();
var server = require('http').Server(app);
var io = require('socket.io')(server);
server.listen(8080);
app.get('/', function (req, res) {
res.sendfile(__dirname + '/index.html');
});
io.on('connection', function (socket) {
socket.emit('news', { hello: 'world' });
socket.on('my other event', function (data) {
console.log(data);
});
});
Если я пишу var io = require ('socket.io') (сервер); в каждом файле, где я хочу использовать модуль socket.io Iam get ReferenceError: сервер не определен error –
Ну, вы проходите переменную '(server)', поэтому вам нужно создать эту переменную точно так же, как в примере. Поэтому добавьте перед остальными требованиями (http, express). Как я уже сказал, если вы хотите, вы можете создать функцию модуля, которая вернет вам уже созданный объект socket.io. В противном случае вам нужно вставить в каждый файл все 3 оператора. EDIT: Сначала прочтите модуль node.js: https://nodejs.org/docs/latest/api/modules.html – mkatanski