2017-05-03 112 views
0

我试图通过单击选项卡按钮刷新带有SQL数据的表,但它不起作用。节点JS。 Jade/Pug页面未呈现

在app.js:

app.post('/updateTable', function(req, res) { 
    var db = new sqlite3.Database('users.db'); 

    db.serialize(function() { 
    db.all("SELECT * FROM user_info", function(err, rows) { 
     res.render('index', { title: 'Student Registration', rows: rows }); 
    }); 
    }); 

    db.close(); 
}); 

在index.pug:

#tabs-2.box 
    table 
    thead 
     tr#tabTit 
     th Name 
     th Birthday 
     th EduID 
     th EduGroup 
     th Phone 
     th Email 
    tbody 
     - for (var item in rows) 
      tr 
      td= rows[item].name 
      td= rows[item].date 
      td= rows[item].eduID 
      td= rows[item].gr 
      td= rows[item].phone 
      td= rows[item].email 

在CLIEN侧JS:

$(document).ready(function() { 
$('#tabs, #tabs-2').tabs({ 
     activate: function(event, ui) { 
       $.ajax({ 
        type: 'POST', 
        url: '/updateTable' 
       }); 
     } 
    }); 
}); 

的请求柱succefully处理,但“ res.render“不起作用。

我在哪里搞砸了?

P.S.对不起,我的英语

回答

0

终于来了!它在ajax-request中与成功处理程序一起工作。现在有动态刷新表。

渲染哈巴狗页 '表'

db.all("SELECT * FROM user_info", function(err, rows) { 
    res.render('table', { rows: rows }); 
}); 

成功处理程序

$.ajax({ 
    type: 'GET', 
    url: '/updateTable', 
    success: function(data) { 
       $('#tabs-2').html(data); 
      } 
}); 
0

您确定发布的请求已被处理吗?您正在声明activate函数,但从未调用它。

如果这不是问题,请尝试返回res.render。它变为:

return res.render('index', { title: 'Student Registration', rows: rows });

+0

谢谢回答!点击选项卡时,我在控制台中显示了这条消息:POST/updateTable 200 79.484 ms - 1903并且在res.render之前放置return并没有帮助。 –

+0

如果你有'''console.log(行)'''res.render上方的行,会发生什么? – DrunkDevKek

+0

如果(错误)console.log(err)'''db.all查询下面的第一行(回调的第一行) – DrunkDevKek