Node / Express / mysql如何在jade页面中获取SQL结果?

我有一个节点/快速应用程序,我用来监视我的MySQL数据库。 我的页面是这样的:

节点:

app.get('/banners', function(req,res){ connection.query("SELECT * FROM banner_store_idx WHERE id_type='1' ORDER BY id_banner ASC", function selectCb(err, results, fields) { if (err) { throw err; } res.render('banners', { title: results[0].title, results: results }); }); }); 

去这个Jade模板:

 !!! html head body ul - each result in results li(id=result['name_store'])= result['name_store'] div#AJAXresults(style='margin: 0 auto; width: 800px; height: 600px; margin: 0 0 20px 0; border: solid 1px #999; overflow-y: scroll;') 

这部分呈现完美。

现在,我想要做什么:

当用户点击其中一个列表元素时,它应该创build一个Mysql SELECT,并在div#AJAXresults中显示所选表(name_store)的结果。

我可以使用jQuery,并通过PHP做一个Ajax调用,但它会打败目的…我不想链接到另一个页面,我知道该怎么做,我不想刷新页面。你有什么build议?

编辑:

我可以做些什么(从这里的另一个线程启发):

 $('#id of list elem').click(function() { $.get('/ajax', {id:elem_id}, function(result) { $('#AJAXresults').html(result); } } 

然后在节点

 app.get('/ajax', function(req,res){ connection.query("SELECT * FROM id ", function selectCb(err, results, fields) { if (err) { throw err; } res.send(results); }); }); 

你可以做这样的事情:

添加新的快速路线:

 app.get('/your/route/name', function(req,res) { var id = req.query.id; // get your id from ajax request ... res.send(render_html); }); 

玉:

 li.list-result(id=result['name_store'], data-id=result['id'])= result['name_store'] 

Javascript:

 $('.list-result').click(function(){ var id = {id: $(this).data("id")}; $.ajax({ type: "GET", url: "/your/route/name", data: id, success: function(data) { $("#AJAXresults").html(data); } }); ); 

我没有testing任何这个代码,但你明白了:)

PS:不要忘了在节点中将你的id进行sanatize。