Странное поведение NodeJS - данные получают отправку, но ответа сервера нет (net :: ERR_EMPTY_RESPONSE) - PullRequest
0 голосов
/ 24 июня 2019

Введение: Я начал немного связываться с NodeJS.

Что я делаю: Теперь я отправляю некоторые данные через форму (из приложения VUE) в свой бэкэнд (NodeJS), где данные записываются в MongoDB (с использованием Atlas) - все работает так, как должно (более или менее) данные записываются в базу данных .

Проблема: Одна вещь не работает, как мысль. После того как я отправлю данные, которые должны быть выполнены после того, как ответ не будет выполнен. Через некоторое время я получаю сообщение об ошибке:

POST http://localhost:3000/test net :: ERR_EMPTY_RESPONSE

  • Если данные записываются, я получаю сообщение об ошибке и код внутри .then () не будет выполнен

  • если я получаю ошибку (например, cz. Соответствующего пути для отправки данных не существует, код внутри .catch () будет выполнен.

Поскольку я не бэкэнд-парень, я не очень понимаю, в чем проблема. Надеюсь, что кто-нибудь сможет помочь.

Vue + Axios

    submit() {

        if ( this.newWorkoutCollection.workoutName !== "" || null ) {

            axios.post('/workout', this.newWorkoutCollection)
            .then((result) => {
                console.log(result)
                console.log("result")
            })
            .catch((error) => {
                console.log(error)
                console.log("error")
            });

        } else {
            console.log("Something else...!")
        }
    },

NodeJS + Express (контроллер)

exports.addNewWorkout= (req, res, next) => {
    console.log(req.body);

    // get values
    const workoutName = req.body.workoutName;
    const workoutItems = req.body.workoutItems;

    // paste values into class
    const workout = new Workout(workoutName, workoutItems);

    workout
        .save()
        .then(response => {
            console.log(response);
        })
        .catch(error => {
            console.log(error);
        });
    };

1 Ответ

2 голосов
/ 24 июня 2019

Вы не отправляете ответ в обратном вызове addNewWorkout.Если вы не отправите ответ, через некоторое время запрос будет остановлен (по умолчанию около 2 минут) с пустым ответом.

workout.save()
.then(response => {
    console.log(response);
    res.send(response);
})
.catch(error => {
    console.log(error);
    res.status(500).send(error);
});
...