Ошибка при публикации в моем бэкэнд-API из формы React - PullRequest
0 голосов
/ 25 апреля 2020

Я создаю это приложение для отслеживания задач с использованием узла / express, mysql и реагирую.

Прямо сейчас я пытаюсь разместить введенную задачу в моей базе данных (у меня написан почтовый маршрут, и он прекрасно работает в почтальоне), но когда я пытаюсь отправить форму из внешнего интерфейса реагировать, я получаю эту ошибку: 400 (неверный запрос) и SyntaxError: неожиданный токен

Мой сервер узлов работает на localhost 3000, в то время как мое приложение реакции работает на localhost 3001, но я добавил прокси для localhost 3000.

Ниже приведен мой код submitHandler в sr c реакции

submitHandler = (event) => {
        event.preventDefault() //to prevent page refresh
        console.log(this.state)

        fetch("https://localhost:3000/api/task", {
            method: "POST",
            headers: {
                'Accept': 'application/json',
                'Content-Type': 'application/json'
            },
            body: JSON.stringify(this.state)
        })
        .then(res => res.json())
        .then(data => console.log(data))
        .catch(err => console.log(err))
    }

Ниже показано, как пишется мой внутренний POST-маршрут

const db = require("../models");

module.exports = function(router) {

    router.get("/api/tasks", (req, res) => {
        db.Task.findAll({}).then(data => {
            res.json(data);
        });
    });

    router.post("https://localhost:3000/api/task", (req, res) => {
        db.Task.create({
            task: req.body
        }).then(data => {
            res.json(data)
        }).catch(err => res.json(err))
    })
}

И мой сервер. js Файл также находится ниже

const express = require("express");
const app = express();
const path = require("path");
const PORT = process.env.PORT || 3000;
const db = require("./models");
const cors = require('cors')

var corsOptions = {
    origin: '*',
    optionsSuccessStatus: 200,
  }
app.use(cors(corsOptions)) 

app.use(express.static(path.join(__dirname, "build")));
app.use(express.urlencoded({ extended: true }));
app.use(express.json());

app.get("ping", function (req, res) {
    return res.send("pong");
})

// app.get("*", function (req, res) {
//     res.sendFile(path.join(__dirname, "build", "index.html"));
// })

require("./controllers/taskController")(app);

db.sequelize.sync().then(function() {

    app.listen(PORT, () => {
        console.log("Your API server is now on PORT:", PORT);
    })

})

Есть идеи, что вызывает эту ошибку?

1 Ответ

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

Ошибки SSL обычно возникают, когда вы имеете дело с https://. Замените все вхождения https: // на http: //, и это может решить вашу проблему при разработке.

...