【问题标题】:re-render pug view with express使用 express 重新渲染 pug 视图
【发布时间】:2017-06-30 12:49:03
【问题描述】:

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

到目前为止,我能够从数据库中获取一些数据,并使用 pug 为我呈现一个在列表视图中显示结果的页面。

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

我的路线如下所示:

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) 在 post 路由中没有任何反应。

是否不可能“重新渲染”视图,或者我是否犯了任何其他概念性错误?

感谢您的帮助

【问题讨论】:

    标签: javascript node.js express pug


    【解决方案1】:

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

    从服务器发送的渲染页面将进入您的 AJAX 调用的成功处理程序的响应对象中。

    所以,要么

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

    【讨论】:

    • 谢谢,这解释了我的问题
    猜你喜欢
    • 2017-08-09
    • 1970-01-01
    • 2017-08-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多