Связанное размещенное приложение с nodejs и экспресс

Я разработал приложение, используя reactjs и flux для фронта и экспресс для тыла в качестве сервера. все работало нормально. но когда я разместил приложение, возникла проблема. если несколько пользователей запускают приложение через его URL-адрес, изменения применяются ко всем экземплярам. не разрешает несколько экземпляров?

EDIT: Вот мой getMail: это функция в моем server.js

app.get('/api/getmail', function(req, res) {
    try {
        let id = req.param('id');
        var options = { sql: 'SELECT * FROM message WHERE message_owner="' + id + '"', nestTables: true };
        connection.query(options, function(err, result) {
            if (err) throw err;
            res.json(result);
        });
    } catch (error) {
        res.json({ error: error });
    }
});

Когда пользователь нажимает (впереди) getMails, запрос отправляется с API, который я сделал (API использует запрос от superagent/lib/client). Порт моего сервера указан так:

app.listen(3002);

person Meryam    schedule 21.12.2016    source источник
comment
Как у вас настроена маршрутизация? Как вы используете один и тот же URL-адрес в нескольких экземплярах? Вы запускаете одно и то же приложение несколько раз на одном сервере? Какой хостинг вы используете? Нам нужно больше контекста и кода, чтобы помочь вам.   -  person Max Baldwin    schedule 21.12.2016
comment
я использую реактивный маршрутизатор для указания маршрутов. я объясняю: моя точка входа — index.js, где я указываю маршруты с помощью реагирующего маршрутизатора. затем я запрашиваю сервер (экспресс, который общается с базой данных остроумия). клиентская часть работает на xxxxxx.com:3000, а серверная — на xxxxx.com:3002. поэтому, если я хочу отправить запрос от клиента к серверу, я использую запрос из библиотеки суперагентов (модуль узла) и URL = xxxxxx.com:3002/getmail. я размещаю свое приложение на OVH, где я установил nodejs. у меня обычная учетная запись (я не root), поэтому всякий раз, когда я хочу получить доступ к URL-адресу, я всегда указываю порт 3000   -  person Meryam    schedule 21.12.2016
comment
это сервер - это ваш nodejs, если да, то попробуйте вызвать маршрут, как вы его называете в своей локальной системе. просто измените номер порта и используйте URL-адрес, например 127.0.0.1 (локальный хост) или какой-либо другой URL-адрес. используйте вот так 127.0.0.1:3002/getmail   -  person Shekhar Tyagi    schedule 21.12.2016
comment
Можем ли мы увидеть ваш код маршрута getMail? Добавьте это как редактирование выше. Когда пользователь попадает на ваш маршрут getMail, я хочу посмотреть, что произойдет.   -  person Max Baldwin    schedule 21.12.2016
comment
@ShekharTyagi я сделал, но все же это потому, что я запускаю мое приложение на определенном порту 3000 (для фронта), все пользователи, которые используют мое приложение на этом порту, видят одно и то же, что связано ...   -  person Meryam    schedule 22.12.2016
comment
@MaxBaldwin Я вставил код, который вы сказали. но я не согласен с тем, что это что-то в портах... это правда, что я запускаю приложение в порту 3000, но означает ли это, что все пользователи, которые видят мое приложение на этом порту, обязаны видеть те же страницы (пример: если пользователь X выход из системы, все пользователи выходят из системы одновременно)   -  person Meryam    schedule 22.12.2016
comment
пожалуйста, проголосуйте. мой ответ   -  person Shekhar Tyagi    schedule 22.12.2016
comment
@Meryam, не могли бы вы удалить свой ответ ниже? Я переместил ваш ответ в ваш вопрос как редактирование, где он должен быть. После прохождения проверки редактирование станет видимым.   -  person Max Baldwin    schedule 22.12.2016


Ответы (1)


Итак, я могу сказать вам, что ваша проблема прямо здесь:

let id = req.param('id');

Функция req.param была устарела в Express. Следовательно, let id всегда равно null. Итак, вы говорите своему MYSQL серверу: «Выбрать все из сообщения, где id ничего не равен». Если вы хотите получить id из строки запроса, вы можете посмотреть этот пост. Этот метод также подходит для вашей ситуации.

person Max Baldwin    schedule 22.12.2016