如何在同一页面中显示表单和结果(GET / POST路由)

时间:2018-11-22 14:10:49

标签: node.js express middleware

我有一个问题要问你。

我使用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方法发送值comparetable / results,如果定义了数据,则可以显示结果。 在服务器端,我有两条路线:get(使用数据渲染模板)和post(进行处理并重定向到用于显示的get方法)。

目标是拥有一个模板(客户端)和一个渲染功能/路由(服务器端)。目前,它不起作用。有人可以帮我吗?

0 个答案:

没有答案