У меня к вам вопрос.
Я использую шаблонный движок ExpressJS и Pug для небольшого приложения.Я создаю форму и отправляю значения формы по методу POST.После некоторой обработки я хочу отобразить результаты на той же странице (страница формы).
index.pug (на стороне клиента)
form(method='POST' action='/comparetable/results')
div.form-group
label(for="libelle") Libellé
input(
type="text"
class="form-control"
name="libelle"
id= "libelle"
value=libelle? libelle : ""
)
if(data)
if data.length == 0
p No errors
else
table.table
thead
tr
td(scope="col" class="font-weight-bold") Ligne
tbody
each dataRow in data
tr
td= dataRow["ligne"]
app.js (на стороне сервера)
app.get('/comparetable', function (req, res, next) {
res.render('compare', {
libelle : req.body.libelle,
data: (req.outputArray? req.outputArray : null)
});
});
app.post('/comparetable/results', function (req, res, next) {
const libelle = req.body.libelle;
// some processing
// input : libelle (a string)
// output : outputArray (an array with data)
req.outputArray = outputArray;
res.redirect('/comparetable');
})
В клиентской части у меня есть форма, которая отправляет сравниваемые значения / результаты в метод POST и отображает результаты, если данные определены.На стороне сервера у меня есть два маршрута: get (который отображает шаблон с данными) и post (который выполняет обработку и перенаправление для получения метода для отображения).
Цель состоит в том, чтобы иметь один шаблон (client-сторона) и одна функция рендеринга / маршрут (сторона сервера).В настоящее время это не работает.Кто-нибудь, чтобы помочь мне, пожалуйста?