nodejs、expressjs和jade中没有获取参数

rqdpfwrv  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(455)

我有一个带有两个选择菜单的页面和一个显示数据的表格。我用get从mysql获取数据并填充select菜单,现在当我点击submit按钮时,它应该在下表中显示数据而不刷新页面。我是新来的。
应用程序.js

app.get('/home', function(req, res){
     db.connect(function(err){
      var sale = req.query.cbosale;
      var company = req.query.cbocompany;
       db.query("SELECT DISTINCT(SaleNo) FROM tsales; SELECT DISTINCT(Company) FROM tcompany; SELECT * FROM trecords WHERE SaleNo = '"+sale+"' AND Company = '"+company+"'", [1,2,3], function(err, result, fields){
        res.render('home', {title:"Home",data:result});
       })
      })
   })

家。玉

script.
     $('#submit').click(function(){
      var cbosale = $('#cbosale').val();
      var cbocompany = $('#cbocompany').val();
      $.get("/home", {cbosale: cbosale, cbocompany: cbocompany), function(data){
       $('#showdata').show();
      })
     })
    })

当我在查询中插入静态变量时,会显示数据,传递参数时不会显示数据。获取参数时可能会出现问题。

5tmbdcev

5tmbdcev1#

我马上发现你的代码有两个问题。
最重要的-不是主题,但重要的是-您的服务器易受sql注入攻击-这是主要的安全漏洞,您应该修复它。请参见示例:阻止node.js中的sql注入
关于你的主要问题。你根本没有消费请求的结果。这个 data 一点也没有用。你的 $.get 回调应该类似于:

function(data){
    $('#dataTitle').val(data.title);
    $('#dataResult').val(data.result); // assuming result is plain string or number 
    $('#showdata').show();
}

相关问题