Задать вопрос
@AlexNoch

Как подружить React и Бэкенд часть на Node.js?

Только начал разрабатывать приложения, никак не соображу. Как связать frontend - на React и сервер на Node.js?
Удалённо - купил VPS, настроил, выложил node.js , запустил. С браузера открыл своё React приложение, отправил AJAX запрос, и я получил ответ с своего сервера. Окей. А как мне простите разрабатывать все локально? Я запустил приложение npm node app.js на 8000 порту. Запускаю своё реакт приложение через npm start, оно открывается на 3000 порту. Но Ajax запросы не получают никакого ответа. Пробовал выставлять заголовки "Content-Type": "application/json",
"Access-Control-Allow-Origin":"*" , на удаленном сервере это дало результат. Локально , не дало. Как разрабатывать локально ?
  • Вопрос задан
  • 558 просмотров
Подписаться 1 Средний Комментировать
Решения вопроса 1
dyuriev
@dyuriev
A posteriori
Как же сильно я (не) люблю эти вопросы про node.js и порты.

Ставите себе nginx на локалхост который роутит правильно запросы с 80 порта до 3000 или 8000 порта в зависимости от запроса и живете себе радуетесь.

Как правильно? да так же как VPS вы настраивали.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
Robur
@Robur
Знаю больше чем это необходимо
Но Ajax запросы не получают никакого ответа.

нет такой ошибки "никакого ответа"
Либо запрос идет не туда, либо сервер не запускается.

никакой сложности тут вообще нет - включаете на сервере в ноде cors, и запускаете реакт и сервер на каких угодно портах.
То что у вас что-то не работает, значит только что вы сделали что-то не так.

проверьте что сервер запускается и доступен на 3000 порту для начала, хотя бы curl или postman, или просто в браузере откройте этот url.
Ответ написан
Комментировать
@AlexNoch Автор вопроса
Барабанная дробь , Решение!
http.createServer((req,res)=>{
    res.writeHead(200, {
        "Access-Control-Allow-Origin":"*",
        "Content-Type": "application/json",
        "Access-Control-Allow-Credentials":"true"
        });
    res.end(JSON.stringify({newName:"Hello World"}))
}).listen(3001);

Вся соль была в том, что заголовок отправлялся неправильно, из за одинарных кавычек, и двоеточия : Будьте внимательнее)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы