Приложение React, развернутое в Digital ocean, выдает ошибку 404

#reactjs #digital-ocean

#reactjs #digital-ocean

Вопрос:

У меня есть форма проверки в React, но при нажатии «Отправить» я получаю «Ошибка 404». Оно отлично работает на локальном компьютере. // из app.js

 handleSubmit = async e => {
    e.preventDefault();
    const response = await fetch('/api/emailVerifier', {
      method: 'POST',
      body: this.state,
      headers: {
        'Content-Type': 'application/json',
      },

      //body: JSON.stringify({ post: this.state.post }),

    });
    const body = await response.text();
    
    this.setState({ responseToPost: body });
  };
 

// из server.js

 app.post('/api/emailVerifier', async (req, res) => {
  console.log(req.body);
  const emailValidator = new EmailValidator();
  const { wellFormed, validDomain, validMailbox } = await emailValidator.verify(req.body.post);
  res.send(

    `response received , welllformed = ${wellFormed}, validDomain = ${validDomain}, validMailbox = ${validMailbox}`,
  );
});
 

я установил свой валидатор на сервере с помощью npm, я добавляю deep-email-validator —save

В моем каталоге на сервере

 asset-manifest.json  index.html   manifest.json      package.json  static
build                logo192.png  node_modules       robots.txt
favicon.ico          logo512.png  package-lock.json  server.js
 

Комментарии:

1. Трудно ответить на ваш вопрос, не зная больше контекста, т.Е. Структуры клиента и сервера, создания и публикации скриптов и т.д. Однако очевидно, что ваш веб-сервер, который реализует /api/emailVerifier , отсутствует после публикации вашему облачному провайдеру.

2. пожалуйста, проверьте.. у меня есть обновление dответ

3. Возможно, это не совсем то, что вы ищете, но это digitalocean.com/community/tutorials / … может помочь.

Ответ №1:

Можете ли вы получить доступ к другим конечным точкам в server.js на DigitalOcean? НАПРИМЕР: если вы создаете:

 app.get('/', function (req, res) {
  res.send('hello world')
})
 

И сделайте запрос к нему из своего приложения React, достигает ли оно этой конечной точки?


Я думаю, вам будет сложно запустить приложение React и сервер из одного и того же места.

Если ваше приложение React настроено правильно, оно попытается обработать все запросы, поступающие на этот URL.

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

Комментарии:

1. можете ли вы уточнить? я не могу понять, поскольку я новичок в разработке react

2. @allabtcoding Я обновил ответ дополнительной информацией

3. нет, я пробовал это .. можете ли вы более подробно описать, как новичок в веб-разработке

4. app.get(‘/api/hello’, (req, res) => { res.send({ express: ‘Введите адрес электронной почты’ }); });

5. @allabtcoding запустите express на другом порту app.listen(4000); .. Затем отправьте свои запросы в app.post(‘:4000/api/emailVerifier’