«Ожидание localhost» после отправки формы: узел / экспресс / реакция - PullRequest
0 голосов
/ 26 июня 2018

Я работаю с узлом / экспресс / реагировать.Я использую форму на внешнем интерфейсе для удаления записей из базы данных сервера:

<form id="delete" action="/delete" method="POST">

    <p>First name:</p>  
    <input type="text" name="first" />

    <p>Last Name:</p>
    <input type="text" name="last" />

    <input type="submit" value="delete person from database" />

</form>

Запись удаляется из базы данных сервера.Но я получаю это сообщение в нижней части окна браузера на веб-интерфейсе:

Ожидание localhost ...

Затем примерно через минуту я получаю это:

«Эта страница не работает. Localhost не отправил никаких данных. ERR_EMPTY_RESPONSE»

Вот соответствующая конечная точка экспресса:

app.post('/delete', function(req, res) {
    var first = req.body.first;
    var last = req.body.last;

    db.collection("employees").remove({first:first, last:last}, function(error, response) {
        if (error) throw error;
        console.log("success");
    });

});

Если я сделать отправить данныеС помощью res.send () или res.json () вся интерфейсная веб-страница стирается и заменяется данными, отправленными из серверной части.

Часто после отправки формы вы отправляете пользователя на другую веб-страницу после отправки.Но в моем случае я хочу, чтобы пользователь оставался на той же странице без перезагрузки страницы.

Как получить сообщения об ошибках в этом случае?

1 Ответ

0 голосов
/ 26 июня 2018

Для узла / экспресс-части вопроса «Как получить сообщения об ошибках в этом случае?», Вы должны отправить какой-то ответ с конечной точки:

app.post('/delete', function(req, res) {
    var first = req.body.first;
    var last = req.body.last;

    db.collection("employees").remove({first:first, last:last}, function(error, response) {
        if (error) throw error;
        console.log("success");
        res.status(200).send({msg: `Deleted ${first} ${last}, RIP`}); //returning a status object, but you could return anything useful to the client code here.
    });

});

Это избавляет от ошибки, но вы все равно будете перенаправлены на страницу с выводом JSON из API.

Обсуждается вопрос о том, чтобы остаться на той же странице после отправки формы здесь итакже много других постов.Вы упоминаете, что это приложение React - возможно, вы захотите использовать эту платформу для выполнения вызовов API из вашего внешнего интерфейса.

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