React.js ожидает 4 минуты до того, как получит ответ от Express.js назад и restful api - PullRequest
0 голосов
/ 11 декабря 2018

Я работаю над простым приложением для создания страниц, которое использует React на внешнем интерфейсе и Express на внутреннем.В качестве библиотеки Ajax я использую пакет Axios npm.Ниже вы можете увидеть код, который имеет отношение к этому вопросу:

###########
PageList.js
###########
.
.
.
componentDidMount() {
          axios.get('/admin/pages')
          .then(response => {
             console.log(response.data);
         })
         .catch(err => {
             console.log(err);
         })
    })
}
.
.
.

Это часть переднего плана.На бэкэнде у меня есть роутер, который работает, для чего он предназначен, то есть направляет меня к этому контроллеру (я вижу это из журналов на консоли сервера):

####################
controllers/admin.js
####################
.
.
.
exports.getPages = (req, res, next) => {
    Page.find()
        .then(pages => {
            return pages;
        })
        .catch(err => {
            console.log(err)
        });
};
.
.
.

Оба, интерфейса также серверная часть работают на локальном хосте на машине с Windows в качестве узловых приложений, работающих на разных портах.У меня была эта проблема с CORS, которую я решил, с пакетом cors npm.В качестве менеджера БД я использую mongodb с mongoose ODM.

Проблема, с которой я сталкиваюсь, заключается в том, что при отправке Ajax-запроса на все внутренние конечные точки приложение укладывается в стек на 4 минуты (точно, я делаюне знаю, как получилось ...) в какой период серверная часть работает, она записывает все установленные мной консоли, записывает документ в БД, если это запрос POST, но ждет 4 минуты до начала-end подсказывается, что запрос был успешным.Во время этого запрос на вкладке dev tools -> network имеет статус ожидающий.

Я могу сделать репозиторий git-hub, но все же я не спрятал всю эту конфиденциальную информацию, т.е. онидо сих пор жестко запрограммированы в некоторых местах приложения, поэтому рискованно предоставлять публичный доступ к ресурсам, которые я использую.Итак, я был бы рад, если бы кто-то мог дать мне понять, в чем может быть проблема.

Спасибо

1 Ответ

0 голосов
/ 11 декабря 2018

Вы забыли фактически отправить данные, которые вы извлекаете из базы данных.Таким образом, время ожидания вашего сервера истекает через 4 минуты.

Это можно исправить, вызвав res.send или res.json , например:

####################
controllers/admin.js
####################
.
.
.
exports.getPages = (req, res, next) => {
    Page.find()
        .then(pages => res.send(pages))
        .catch(err => {
            console.log(err)
        });
};
.
.
.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...