Реагировать на отказ API в облачной среде IDE (стек MERN) - PullRequest
0 голосов
/ 26 апреля 2020

Я изучаю стек MERN, следуя инструкциям ниже. https://medium.com/@beaucarnes / Learn-Mern-Stack-By-Building-Exerc-Tracker-Mern-Tutorial-59c13c1237a1

Я решил использовать IDE облачной платформы под названием goorm IDE (https://ide.goorm.io), который похож на Cloud 9 IDE, и, следуя руководству, я понял простую проблему, заключающуюся в том, что среда тестирования немного отличается, потому что я не могу получить доступ к localhost на моем машина (или, по крайней мере, я не знаю, как это сделать).

Работа на бэк-энде не имела особых проблем, потому что эта IDE предоставляет домен, к которому я могу получить доступ, и я могу просто запустить сервер. js (не все приложение реакции) и легко тестируйте конечную точку API. Но теперь, когда я запускаю все приложение реагирования и изучаю интерфейсную часть, я обнаружил, что мой сервер. js недоступен, как и раньше, когда я работал только на сервере, и мне было бы отказано в соединении, как показано ниже.

Ниже приведен фактический код, который я использую со стороны внешнего интерфейса для вызова API на сервере.

axios.post('http://localhost:5000/users/add', user).then(res => console.log(res.data));
// I tried changing the url to external domain.. changing the directory.. with no luck..

Ниже приведен код для сервера. js file.

const express = require('express');
const cors = require('cors');
const mongoose = require('mongoose');

require('dotenv').config();

const app = express();
const port = process.env.PORT || 5000;

app.use(cors());
app.use(express.json());

const uri = process.env.ATLAS_URI;
mongoose.connect(uri, { useNewUrlParser: true, useCreateIndex: true }
);

const connection = mongoose.connection;
connection.once('open', () => {
    console.log("Mongo DB database connection established successfully");
});

const exercisesRouter = require('./routes/exercises');
const usersRouter = require('./routes/users');

app.use('/exercises', exercisesRouter);
app.use('/users', usersRouter);

app.listen(port, process.env.IP, () => {
    console.log(`Server is running on port: ${port}`);
});

Ниже приведен URL-адрес страницы, на которой я на самом деле пытаюсь выполнить вызов API. https://zimen.run.goorm.io/user

Другая информация о среде

  • Запуск URL и настройка порта из IDE: https://zimen.run.goorm.io: 3000
  • Каталог приложения React: root / mern-training-tracker /
  • зависимости: express, create-response-app, mon goose, cors

I ' Мне интересно, будет ли лучше начать весь проект заново в чистом местном окружении ... Если кто-то может помочь, это будет высоко оценено.

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

Заранее спасибо.

== ОБНОВЛЕНИЕ ==

Извините, я забыл прикрепить ошибку журнал.

xhr.js:178 POST https://localhost:3000/users/add net::ERR_CONNECTION_REFUSED
Uncaught (in promise) Error: Network Error
at createError (createError.js:16)
at XMLHttpRequest.handleError (xhr.js:83)

1 Ответ

0 голосов
/ 26 апреля 2020

похоже, у вас ошибка CORS, я решил эту проблему, установив расширение CORS на Goolge Chrome

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