Есть ли способ перенаправления с одного маршрута на другой с данными от первого маршрута ко второму в node.js? - PullRequest
0 голосов
/ 03 июля 2018

То, что я хочу знать, возможно ли перенаправить с одного маршрута на другой с данными с первого маршрута на второй? Например, из формы HTML я отправляю данные (скажем, номер телефона) в маршрут (скажем, «/ route1»), и при успешной операции на этом маршруте я хочу отправить номер телефона в «/ route2» из «роут1». Если это возможно, то как мне это сделать?

Ответы [ 2 ]

0 голосов
/ 06 июля 2018

Что я хочу знать, так это то, можно ли перенаправить с одного маршрута на другой данные с первого маршрута на второй?

Как только ваши данные будут опубликованы без ошибок, вы можете перенаправить клиента следующим образом:

// POST data
app.post('/oneRoute', function(req, res) {

    let myData = new MySchema();
    myData.phoneNumber = req.body.phoneNumber;

    // save data to DB then redirect to /anotherRoute
    myData.save(function(err) {

        if (err) {
            // error
        } else {
            // redirect path
            res.redirect('/anotherRoute');
        }
    });
});

Затем, если вы хотите передать данные в параметре запроса на URL перенаправления, вы можете:

        (...)

        } else {
            // redirect path + query parameter
            res.redirect('/anotherRoute?phonenumber='+req.body.phoneNumber);
        }

        (...)

Что дальше? Вы можете получить строку запроса из URL вашего перенаправленного пути ...

        http://localhost:3000/anotherRoute/?phonenumber=6876766242425

Примечание: как уже упоминалось в ответе jfriend00 , это решение является чистым и не имеет состояния, данные доступны как клиенту, так и серверу.

См. Также res.redirect () & req.query

Сессия: другим способом, если вы хотите сохранить данные на стороне сервера, вы можете использовать Простое промежуточное программное обеспечение сеанса для пакета Express ...

0 голосов
/ 04 июля 2018

Существует несколько способов передачи данных в перенаправлении.

  1. Поместить данные в параметр запроса на URL перенаправления http://www.whatever.com/somePath?ph=123-456-1234. Либо сервер, либо клиент могут получить доступ к данным при рендеринге перенаправленной страницы.
  2. Поместите данные в объект сеанса на стороне сервера, где они будут доступны при отображении перенаправленной страницы.
  3. Используйте промежуточное программное обеспечение «flash», которое сохраняет некоторые данные только для «следующего» запроса от этого конкретного браузера, чтобы данные были доступны на стороне сервера при рендеринге перенаправленной страницы.

Из этих опций первый является чистым, поскольку он не имеет состояния и данные доступны для клиента или сервера. Также не требуется никакого временного серверного хранилища.

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