На этот вопрос есть несколько похожих вопросов, но они не дают полезного ответа. Кроме того, в отличие от других вопросов, у меня есть часть метода, который может работать.
Мое приложение использует функции Firebase Hosting и Firebase Cloud. На стороне клиента, когда пользователь нажимает кнопку, я хочу вызвать функцию HTTPS на определенном маршруте для динамической визуализации шаблона руля на основе тела запроса, отправленного клиентом. Используя Express, это будет примерно так:
// Using body-parser middleware with view engine set up:
app.get('/test-route', (req, res) => {
const context = req.body.context;
res.render('my-template', context);
});
Действительно, переход к /test-route
в браузере является единственным способом визуализации шаблона на экране (вы не можете сделать запрос Ajax или Fetch для визуализации с клиента, потому что это не то, что было разработано Ajax или Fetch делать - они не меняют содержимое страницы). Но это не сработает для меня, потому что мне нужно динамически визуализировать шаблон на основе тела запроса, отправленного клиентом.
Тогда я подумал о том, чтобы экспресс-маршрут отправил обратно необработанный HTML-код из шаблона клиенту:
// Using body-parser middleware with view engine set up:
app.get('/test-route', (req, res) => {
const context = req.body.context;
res.render('my-template', context, (err, html) => {
res.send(html);
});
});
Теперь моя проблема в том, что у меня есть HTML-код документа из ответа сервера на клиенте, но как мне отобразить этот HTML-код на новой вкладке в маршруте /test-route
?
Мой проект использует React и React Router, поэтому я подумал об одном решении. В дополнение к вышесказанному, определите маршрут следующим образом
<Route path="/test-route" component={PageIWantToRender}
А затем установите внутренний HTML-код этого компонента в ответ на запрос GET, сделанный на клиенте. Чтобы затем добраться до этого маршрута, я должен был бы использовать компонент <Redirect />
. Проблема в том, что мне нужно, чтобы пользователь мог идти по этому маршруту, только если он уже нажал на кнопку, чтобы запустить функцию для генерации HTML.
Однако я не уверен, что это правильный путь.
Не могли бы вы сказать, является ли решение, которое я уже разработал, жизнеспособным или оптимальным, и если нет, то каков наилучший способ визуализации динамически сгенерированного шаблона на основе информации в req.body
с помощью Express что звонок может поступить от клиента?
Спасибо.