Необработанный отказ (TypeError): не удалось получить (POST) реакцию / узел / express - PullRequest
0 голосов
/ 03 апреля 2020

Я пытаюсь создать форму для входа / регистрации, используя в качестве моего бэкэнда узел и * / 1010 * / (пн go). Бэкэнд работает нормально. Когда я отправляю POST-запрос (с почтальоном) в / register, все работает нормально, и учетные данные хранятся в БД.

Я пытался реализовать форму сейчас с реакцией на стороне клиента, но когда я попробуйте POST я всегда получаю ошибку: Unhandled Rejection (TypeError): Failed to fetch.

Это мой код:

import React, { Component } from 'react';

class Register extends Component {
  state = { email: '', password: '' };

  handleInputChange = event => {
    const { value, name } = event.target;
    this.setState({
      [name]: value
    });
  };

  onSubmit = event => {
    event.preventDefault();
    fetch('localhost:3000/register', {
      method: 'POST',
      headers: { 'Content-Type': 'application/json' },
      body: JSON.stringify({
        email: this.state.email,
        password: this.state.password
      })
    });
  };

  render() {
    return (
      <form onSubmit={this.onSubmit} noValidate>
        <h1>Login</h1>
        <input
          type="email"
          name="email"
          placeholder="Enter email"
          value={this.state.email}
          onChange={this.handleInputChange}
        />
        <input
          type="password"
          name="password"
          placeholder="Enter password"
          value={this.state.password}
          onChange={this.handleInputChange}
        />
        <input type="submit" value="Submit" />
      </form>
    );
  }
}

export default Register;

Помощь будет оценена :)

1 Ответ

1 голос
/ 03 апреля 2020

Вам нужно использовать блок, чтобы фактически вызвать ваш API.

  onSubmit = event => {
    event.preventDefault();
    fetch("localhost:3000/register", {
      method: "POST",
      headers: { "Content-Type": "application/json" },
      body: JSON.stringify({
        email: this.state.email,
        password: this.state.password
      })
    })
      .then(res => {
        console.log("response: ", res);
      })
      .catch(err => {
        console.log("error:", err);
      });
  };
...