На сервере выполняются 2 функции:
1. Получение пользователя(хранятся в бд)
2. Создание маркера пользователем(хранятся в бд и передаются по сокету)
Хочу вынести эти 2 функции в отдельные модули, при попытки разделить все хорошо работает, но запросы к бд начинают работать синхронно т.е. ответ от бд не успевает приходить, а сервер уже отсылает ответ
//app.js
var app = require('express')();
var server = require('http').Server(app);
var io = require('socket.io')(server);
var db = require('./db');
var User = require('./user/UserController');
server.listen(8080);
app.get('/', function (req, res) {
res.sendfile(__dirname + '/page/index.html');
});
io.on('connection', function (socket) {
console.log('connect user:' + socket.id);
socket.on('GetUser', function (id) {
socket.emit('SendUser', User.Get(id));
})
})
socket.on('disconnect', function () {
io.emit('user disconnected');
console.log('disconnect user:' + socket.id);
});
});
// UserController.js
var express = require('express');
var router = express.Router();
var User = require('./User');
// GETS A SINGLE USER FROM THE DATABASE
var UserController = {
Get : function (fb_id) {
User.findOne(fb_id , function (err, user) {
var res
if (err) res = JSON.stringify({ success: 'false', message: 'There was a problem finding the user.' });
else if (!user) res = JSON.stringify({ success: 'false', message: 'No user found.' });
else res = JSON.stringify({ success: 'true', message: 'return user.', result: user });
return res;
})
}
}
module.exports = UserController;