Как сделать розетки, которые сделаны на маршрутах? - PullRequest
0 голосов
/ 26 мая 2019

Я пытаюсь сделать на сокетах что-то похожее для пост-запроса к маршруту.Как сделать только на сокетах?

Действие в клиенте:

export const registerUser = (userData, history) => dispatch => {
    axios
        .post('/users/register', {
            type: `server/${REGISTER_USER}`,
            payload: userData
        })
        .then(res => history.push('/login'))
        .catch(err =>
            dispatch({
                type: GET_ERRORS,
                payload: err.response.data
            })
        );
};

Маршрутизатор на сервере:

router.post("/register", (req, res) => {

    req.io.sockets.on('action', ({ type, payload }) => {

        switch (type) {
            case 'server/REGISTER_USER':

                //...

                db.getConnection((err, connection) => {
                    if (err) throw err;

                    const query = 'SELECT count(email) as number FROM Employee WHERE email=?';

                    connection.query(query, [payload.email], function (error, results, fields) {
                        connection.release();
                        if (error) throw error;

                        //...  

                        const query = `
                                    INSERT INTO Employee 
                                        (id_employee, id_dep, id_post, id_company, name, surname, patron, email, password, avatar) 
                                    VALUES 
                                        (null, null, null, null, ?, ?, ?, ?, ?, ?)`;

                        connection.query(query,
                            [payload.name, payload.surname, payload.patron, payload.email, payload.password, avatar],
                            (error, results, fields) => {
                                if (error) throw error;

                                req.io.sockets.emit('action', { type: 'server/SUCCESS' })
                            })

                    });
                });
        }
    });
})

Как получить положительный ответ и сделать это действие, если я использую "redux-socket.io"?

.then(res => history.push('/login'))
...