gpt4 book ai didi

mysql - 多个控制字段在 Node.js 应用程序中不起作用

转载 作者:行者123 更新时间:2023-11-29 17:18:31 24 4
gpt4 key购买 nike

我一直在使用nodejs、express、jade 和mysql 创建一个应用程序。问题是前端有两个选择菜单,需要从两个 mysql 表中获取数据。我只能拿一个。我是新手,所以请帮助我。

输出.jade 文件:-

    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}

App.js 文件:-

    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. 您不能两次渲染同一页面。 res.render(... 用于编译(输入值,生成 View )并将其发送到服务器。

  2. 您可以在一个语句中使用多个查询。查看this so answer关于如何做到这一点。然后,您可以使用这两个响应一起渲染页面。该答案的要点是

    var connection = mysql.createConnection({multipleStatements: true});

请注意,根据docs

Support for multiple statements is disabled for security reasons (it allows for SQL injection attacks if values are not properly escaped).

确保在任何查询之前清理服务器端的输入。启用后,您可以使用多个语句执行查询,方法是用分号 ; 分隔每个语句。结果将是每个语句的一个数组。

关于mysql - 多个控制字段在 Node.js 应用程序中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51402253/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com