Мой вызов Axios возвращает ошибку 404, React / Express - PullRequest
0 голосов
/ 12 октября 2018

Я использую React и Express, чтобы попытаться опубликовать статью в MongoDB после нажатия кнопки.

**server.js**

app.use(express.static("public"));

app.post("/articles/:id", function(request, response){
    console.log(request.body);
});

и

**home.jsx**

addToFavorites = article => {
    console.log(article);
    this.state.savedArticles.push(article);
    this.setState(this.state.savedArticles);

    axios.post("/articles/" + article.id, {
        title: article.title,
        summary: article.summary,
        writer: article.writer,
        date: article.pub_date,
        url: article.link
    })
    .then(function (response) {
        console.log(response);
    })
    .catch(function (error) {
        console.log(error);
    });
}

Консоль распечатывает статью, поэтому онане является неопределенным, и вызов вызывает следующую ошибку:

Error: Request failed with status code 404
    at createError (createError.js:17)
    at settle (settle.js:19)
    at XMLHttpRequest.handleLoad (xhr.js:78)

Читая другие сообщения, люди упоминали, что путь не существует, но я не уверен, что это значит.

ЛюбойПомощь будет принята с благодарностью:)

ОБНОВЛЕНИЕ:

Моя главная проблема заключалась в том, что я не запускал узел server.js до запуска пряжи.Я новичок в React, поэтому я не знал, что это важно.

Включение прокси в package.json также было важно.

Ответы [ 2 ]

0 голосов
/ 23 июля 2019

Вместо работы в сборке разработки вы можете создать сборку производства.Разработка рендеринга JS-файлов сборки в пользовательском интерфейсе занимает уйму времени по сравнению с рабочей версией, которая очень компактна, сжата для лучшего взаимодействия с пользователем и загрузки в пользовательском интерфейсе.В производственном режиме код выполняется на компьютере вашего клиента, поэтому это делает рендеринг файла в браузере конечного пользователя очень быстрым и повышает производительность.

Шаги для перехода от разработки к производственной сборке:

  1. Нажмите ctrl + c в терминале, чтобы выйти из сборки разработки.

  2. В каталоге проекта Для создания производственной сборки используйте npm run build.

  3. После успешной компиляции вышеуказанной команды, используйте serve -s build для развертывания статического сервера.

Если вы видите этот вывод в терминале

│ Serving! │ │ │ │ - Local: http://localhost:5000 │ │ - On Your Network: http://172.16.2.1:5000 │ │ │

Вы успешно скомпилировали производственную сборку!
0 голосов
/ 12 октября 2018

Если вы используете свой экспресс-сервер на ПОРТ: 8080, добавьте ниже строку в package.json

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