Соединение фронтенда и бэкенда стека MERN

Как реагирующий клиент подключается к серверу через экспресс? Во многих руководствах рассказывается о Superagent и axios, что только усугубляет мою путаницу. Есть ли какие-либо ресурсы по маршрутизации на стороне сервера в контексте реакции? Спасибо

Вы имеете в виду, что хотите подключиться через Socket?

raksa 12.04.2018 06:37

Если вы хотите, чтобы маршрутизация на стороне сервера реагировала с помощью express, вы можете использовать next.js (github.com/zeit/next.js), иначе вы можете напрямую нажать api из своего реагирующего приложения с помощью axios, при разработке реагировать с запуском на 3000, и ваш экспресс-сервер может работать на отдельном сервере кроме 3000

Flexsin Tech 12.04.2018 06:40
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
2
2 393
4

Ответы 4

Они полностью независимы. Независимо от того, используете ли вы axios, собственный выбор Javascript, jQuery AJAX и т. д., Каждый из них запускается в браузере и делает запрос GET / POST к nodejs. Вы должны определить соответствующие маршруты GET / POST в nodejs, чтобы отвечать на эти запросы и возвращать данные ответа JSON для их использования.

Я бы начал с того, что вообще забыл о реакции. Вместо этого создайте экспресс-API с различными маршрутами GET / POST, которые возвращают ответы JSON. Протестируйте с помощью простого клиента, такого как почтальон. Как только вы разберетесь с этим, начните с внешней среды Javascript для использования этих сервисов.

В стеке MERN вам не обязательно рассматривать весь стек как единое целое. Серверы Mongo, ReactJS и NodeJS могут работать независимо. И давайте для простоты понимания скажем, что все они находятся на разных серверах. То есть у нас может быть Mongo на одном сервере, ReactJS на другом сервере и NodeJS с express на третьем сервере, тогда это также будет приложение стека MERN.

Как работает приложение MERN, выглядит следующим образом

Например, у нас есть приложение, которое отображает подробную информацию обо всех учениках в классе. Сначала в приложении React допустим, что вы выбираете класс, а затем интерфейс React отправляет запрос на сервер nodejs. Запрос будет содержать конкретное имя класса. Теперь nodejs отправит запрос в базу данных mongo, запрашивая сведения об учениках этого класса, которые он отправит обратно на сервер node. Затем узел-сервер отправит сведения во внешний интерфейс и обновит их.

Если вы запрашиваете соединение как таковое, соединение может отсутствовать вообще, кроме запроса данных. Вместо использования интерфейса responsejs вы можете использовать другой интерфейс, и он предоставит вам те же сведения. React, Mongo и Node - все они могут работать самостоятельно в своих областях.

Axios - это HTTP-клиент на основе обещаний для браузера и node.js.

Вот фрагмент моего API-интерфейса express + react:

var express = require('express');
var router = express.Router();

router.get('/', function (req, res) {
    res.render('index', {myjson: "myValue"});
})

module.exports = router;

В основном я отправляю строку json в index.jsx, где отображается интерфейс.

Также я установил экспресс как:

app.set('views', __dirname + '/views');
app.set('view engine', 'jsx');
app.engine('jsx', reactViews.createEngine());

Итак, экспресс-сервер знает, где находится React.

Ознакомьтесь с пакетом npm Движок экспресс-реакции.

Все элементы стека могут использоваться независимо: React, Node.Js и MongoDB. Они могут быть установлены на разных серверах, а связь осуществляется с помощью Fetch, Axios или любого другого инструмента.

Другие вопросы по теме