Как подключить интерфейс JES к Express API-интерфейсу - PullRequest
0 голосов
/ 02 июля 2019

Я пытаюсь создать почтовый запрос axios для моего экспресс-бэкэнда из моего внешнего интерфейса реагирования

Я попытался включить синтаксис прокси в мой пакет json, чтобы он мог взаимодействовать с ним, и я также пытался React Proxy error: не удалось прокси-запрос / api / с локального хоста: от 3000 до http://localhost:8000 (ECONNREFUSED)

Вот мой клиент package.json

  "scripts": {
    "start": "react-scripts start",
    "build": "react-scripts build",
    "test": "react-scripts test",
    "eject": "react-scripts eject"
  },

  "proxy": "http://localhost:5000",

Ивот мой запрос API

axios
      .post('api/users/register', newUser)
      .then(res => console.log(res.data))
      .catch(err => this.setState({ errors: err.response.data }));

вот мой экспресс-сервер, обратите внимание, у меня есть папка API, которая обрабатывает каждый API

const express = require('express');
const mongoose = require('mongoose');
const bodyParser = require('body-parser');
const passport = require('passport');

const users = require('./routes/api/users');
const posts = require('./routes/api/posts');
const movies = require('./routes/api/movies');

const app = express();

// Body parser middleware
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());

// Connect to MongoDB
mongoose
  .connect("<my mongo db>", { useNewUrlParser: true })
  .then(() => console.log('MongoDB Connected'))
  .catch(err => console.log(err));

// Passport middleware
app.use(passport.initialize());

// Passport Config
require('./config/passport')(passport);

// Use Routes
app.use('/api/users', users);
app.use('/api/posts', posts);
app.use('/api/movies', movies);

const port = process.env.PORT || 5000;

app.listen(port, () => console.log(`Server running on port ${port}`));


Но мое приложение реакции работает на порту 3000

Я ожидаю, что он выведет сообщение об успехе в консоли, но вот что я получил

POST http://localhost:3000/api/users/register 404 (Not Found) xhr.js:166

, который показывает, что он не связывается с моим пакетом json proxy.

Ответы [ 2 ]

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

Я думаю, что проблема может быть связана со значением jsx формы, которая была отправлена ​​в экспресс-маршрут API.Попробуйте следующее решение, одно из них может заставить его работать

  1. , убедитесь, что значение формы компонента совпадает с значением в вашем экспресс-маршруте
  2. try настройте свой прокси вручную и не забудьте также добавить прокси в ваш package.json.

Это должно решить проблему.

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

Попробуйте добавить в package.json. ... "прокси": { "/ api": { "target": "https://localhost:5000", «безопасный»: ложный } }, ...

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