Как использовать socket.io для передачи некоторых данных из контроллера, а не из app.js, в котором установлено соединение - PullRequest
0 голосов
/ 28 марта 2019

На моем сервере nodejs я подключил socket.io и mongodb, а передний находится в rectjs. Я подключил socket.io и отправлял или прослушивал изменения, но я хочу слушать каждого нового пользователя, добавляемого в базу данных, а затем сообщать обо всем, что произошло. Я сделал API, в котором пользователь регистрируется, и я хочу всякий раз, когда новый пользователь войдите в этот контроллер, который должен прослушать socket.io, а затем передать о пользователе.

я подключил socket.io в app.js и логику прослушивания в userController.js

Вот мое сокетное соединение в app.js


io.on("connection", socket => {
  console.log(`connected ${socket.id}`);
  //creating user as soon as new client connected

  //sending all user but not working
  User.find()
    .then(result => {
      socket.emit("Users", result);
    })
    .catch(err => console.error(err));

  //sending the same id which connected now
  socket.emit("YOUR_ID", socket.id);


  socket.on("disconnection", () => {
    console.log(`disconnected ${socket.id}`);
  });
});

вот мой userController.js



exports.signin = (req, res) => {
    User.findOne({
            email: req.body.email
        })
        .then(user => {
            console.log(user);

            if (!user) {
                console.log('no user');

                return res.json({
                    msg: 'no user'
                })
            } else {
                //here i want to listen 
                return res.json({

                    msg: 'User exists'
                });

            }
        })
}

Я просто хочу прослушать знак нового пользователя, а затем выдать, но проблема в том, что я не могу сделать эту логику.

Если мне нужно добавить socket.io в качестве промежуточного программного обеспечения или что-то еще, чем хорошо.

Спасибо за помощь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...