我一直在使用nodejs、express、jade和mysql创建一个应用程序。问题是前端有两个select菜单,需要从两个mysql表中获取数据。我只能拿一个。我是新手,所以请帮帮我。
输出.jadefile:-
block sale
select(id="cbosale", name="cbosale", class="custom-select custom-select-sm")
option(value="") Select Sale
each variable in data
option(value=variable.SaleNo) #{variable.SaleNo}
block state
select(name="cbostate", id="cbostate", class="custom-select custom-select-sm")
option(value="") Select State
each state in data
option(value=state.Statename) #{state.Statename}
应用程序.jsfile:-
app.get('/output', function(req, res){
db.connect(function(err){
db.query("SELECT DISTINCT(SaleNo) FROM tsales", function(err, result, fields){
res.render('output', {title:"Output",data:result});
})
db.query("SELECT DISTINCT(Statename) FROM tstates", function(err, result, fields){
res.render('output', {title:"Output",data:result});
})
})
})
我知道我不知道该在哪个查询上显示哪个下拉列表,但我不知道怎么做。请帮帮我。
1条答案
按热度按时间uyhoqukh1#
不能两次呈现同一页。
res.render(...
用于编译(放置值、生成视图)并将其发送到服务器。可以在一条语句中使用多个查询。看看这个关于如何做的答案。然后可以使用这两个响应一起呈现页面。这个答案的要点是
var connection = mysql.createConnection({multipleStatements: true});
请注意,根据文件出于安全原因,禁用了对多个语句的支持(如果值未正确转义,则允许sql注入攻击)。
在进行任何查询之前,请确保清除服务器端的输入。一旦启用,您就可以通过使用分号分隔每条语句来使用多条语句执行查询
;
. 结果将是每个语句的一个数组。