路由Express并输出到模板

时间:2016-01-11 01:08:04

标签: javascript ajax node.js express

让我说我有

router.get('/read', function(request, response) {
   res.send({"result": "Success sent from routes/index.js."});
});

如何输出带有数据的模板。如果我使用res.send(),我不能使用res.render()吗?

如果我的用户位于/read并单击按钮以使用ajax发送一些数据,我想在/read上的另一个模板中显示该数据

编辑:解决这个问题的一种方法是在返回数据时创建一个字符串(或者不是)

        success : function(data){
            $(".fillIn").html("<p style = 'color:green;'>" + data + "</p>")
        }

我不想要一个字符串。

图片显示在一页&#34; /&#34;有2个按钮,通过单击每个按钮,您可以发送数据,并且数据可以显示在右侧,具体取决于单击的按钮,填写了一些数据的表单或填充了一些数据的表格。我使用ajax在click上发送数据。将有不同的形式和不同的样式。这就是我想添加模板的原因。我可以使用.load()使用HTML来做到这一点我想但我无法弄清楚如何处理这个玉。

这是我的另一个Question enter image description here

1 个答案:

答案 0 :(得分:1)

在index.js文件中,使用以下命令捕获GET和POST请求并呈现不同的响应:

app.get('/read', function(req, res, next){
    res.render('emptyFormTemplate');
});

app.post('/read', function(req, res, next){
    res.render('dataTableTemplate', {
        name: req.body.name,
        email: req.body.email
    });
});

在客户端,你可以这样将POST数据发送到/读取。您可以在上面的示例中的emptyFormTemplate中包含此脚本。

$('#myForm').submit(function(event){
    var formData = {
        'name'              : $('input[name=name]').val(),
        'email'             : $('input[name=email]').val()
    };
    $.ajax({
        type: 'POST',
        url: '/read',
        data: formData,
        dataType: 'json'
    });
 });