用快递重新渲染哈巴狗视图

时间:2017-06-30 12:49:03

标签: javascript node.js express pug

基本上我想要实现的是可搜索/可过滤的列表视图

到目前为止,我可以从数据库中获取一些数据,然后用pug表达一个页面,在listview中显示结果。

现在我想添加过滤显示的列表视图的功能。 因此,在文本框中的每个keyup事件中,我向服务器发送一个AJAX post请求,从文本框发送查询字符串。到目前为止一切正常,但当我尝试使用过滤结果集“重新渲染”页面时,浏览器中没有任何反应。

我的路线看起来像这样:

var rechnungen;

router.get('/', function(req, res) {

    connection.query('SELECT * FROM rechnungen ', function(err, result) {
    rechnugen = result;
    res.render('rechnungen', {rechnungen: result});

});

router.post('/:query', function(req, res) {
    console.log("received ajax request");
    console.log("with query " + req.params.query);
    res.render('rechnungen', {rechnungen: {}});
});

最初查询语句获取数据并且res.render工作得很好,当我进行AJAX调用时,一切似乎都能正常工作(控制台日志输出与我的输入相匹配)但无论我尝试传递给视图( res.render)在后期路线没有任何反应。

是不是可以“重新渲染”一个视图,还是我有任何其他的概念错误?

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

AJAX POST调用不是传统的HTTP调用。

从服务器发送的呈现页面将出现在AJAX调用的成功处理程序的响应对象中。

所以,

  • 使用回复HTML或
  • 替换整个HTML
  • 制作传统的HTTP表单POST,在这种情况下,默认情况下浏览器会呈现服务器的响应。