@RomanSS

Как в nodejs и модуля mysql вытащить данные для middleware?

Подскажите как правильно решить задачу. Перед тем как подключится к socket.io, нужно запустить свой middleware который вытаскивает данные из базы и записывает в сокет, нужно чтобы при событии коннекта, в сокете уже хранилась информация из базы. Проблема в том, что запрос к базе асинхронный, и при коннекте данных еще может не быть.

var express = require('express');
var app = express();
var mysql = require('mysql');
var server = require('http').createServer(app);
var io = require('socket.io')(server);

io.use(function (socket, next) {

   // Как сделать запрос к mysql, так чтобы при коннекте к сокету они уже были прописаны в сокете?
    socket.mysql_data="значение из базы";
    next();

});

io.on('connection', function (socket) {
    // socket.mysql_data должна уже содержать данные из базы 
});
  • Вопрос задан
  • 457 просмотров
Решения вопроса 1
vitali1995
@vitali1995
Вызывать next() в колбэке бд - там где данные уже вернулись.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы