Express js повторение маршрута с контекстом - PullRequest
0 голосов
/ 08 апреля 2020

Я сижу с этим уже несколько дней, и у меня от этого мозг до смерти, и я не могу придумать лучший способ приблизиться к этому.

Чего я хотел бы достичь, так это уметь повторить маршрут маршрута с новыми данными контекста на старте. Итак, для rxample:

app.get('/test', testGet);
app.post('/test', testPost);

с этими двумя маршрутами я хотел бы:

  1. GO через обработчик testGet (получить необходимые данные и представить пользовательский интерфейс для формы)
  2. Соберите данные формы и отправьте их для обработчика testPost
  3. Обработайте данные из формы на testPost и сгенерируйте подходящую новую полезную нагрузку
  4. Снова перенаправьте в обработчик testGet с новыми данными полезной нагрузки из testPost, если путешествие не выполнено успешно

Как я передам эти новые данные в testGet при перенаправлении? Не могу понять лучший способ. Редирект не принимает никакой полезной нагрузки. Перенаправление с параметрами запроса - своего рода путь к go, но он добавляет строку URL со строкой запроса пользователю, которую я бы не хотел показывать пользователю. И эти данные будут не простой строкой, а объектом, содержащим несколько массивов и свойств

1 Ответ

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

Посмотрите на это

const handleRequest = (req, res, next) => {
    const view = 'myView.jsx';
    let myData = {};

    ...do the common job

    if (req.method === 'GET') {
         return res.render(view, data)
    }

    /* here you are in the post method */
    data = /* modify your data with the req.body */

    return res.render(view, data)
};


app.get('/test', handleRequest);
app.post('/test', handleRequest);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...