Mysql nodejs、expressjs和jade中未提取参数
我有一个带有两个选择菜单的页面和一个显示数据的表格。我用“get”从MySQL获取数据并填充选择菜单,现在当我点击“submit”按钮时,它应该会在下表中显示数据,而不会刷新页面。我是新来的 App.jsMysql nodejs、expressjs和jade中未提取参数,mysql,node.js,express,pug,Mysql,Node.js,Express,Pug,我有一个带有两个选择菜单的页面和一个显示数据的表格。我用“get”从MySQL获取数据并填充选择菜单,现在当我点击“submit”按钮时,它应该会在下表中显示数据,而不会刷新页面。我是新来的 App.js app.get('/home', function(req, res){ db.connect(function(err){ var sale = req.query.cbosale; var company = req.query.cbocompan
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();
})
})
})
当我在查询中插入静态变量时,会显示数据,传递参数时不会显示数据。获取参数时可能会出现问题。我立即发现您的代码有两个问题 最重要的是——不是关于主题,但很重要——您的服务器易受SQL注入攻击——这是一个主要的安全漏洞,您应该修复它。例如,见: 关于你的主要问题。您根本不使用请求的结果。 回调的
数据
根本不被使用。您的$.get
回调应该类似于以下内容:
function(data){
$('#dataTitle').val(data.title);
$('#dataResult').val(data.result); // assuming result is plain string or number
$('#showdata').show();
}
它仍然不起作用,我注意到,当我正常运行页面时,url是这样的:“。但是,当我像这样编辑url时,“”,数据就会显示出来。无论如何,console.log中的查询在这两种情况下都会显示查询中的参数。