mysql - 如何将 SQL 查询的结果放在下拉列表中?
问题描述
我使用 const
mysql = require('mysql2')
并查询我的数据库
connection.query(query, function(err, result) {
if(err) return callback(err);
callback(null, result);
});
这工作得很好,我收到了结果。但是,我然后尝试通过结果来表达
app.get('/', (req, res) => {
(sql code goes here), store it in result
res.render('search', {
dropdowns: [{
name: 'Name1',
title: 'Name1',
options: result
...
}
我得到一个包含正确数量条目的下拉列表,但是它们都是空的/“”(。)。
如果我使用 console.log 它说
[15:52:07] [日志] [对象对象],[对象对象],[对象对象],[对象对象]”。
我也尝试过制作 javascript 对象和 JSON.stringify 这些,但没有成功。如果我对 SQL 查询结果进行硬编码,它可以工作.. 选项应该看起来像
{"value":"foo","title":"foo!"}.
编辑:这是 SQL 代码的样子。在 render 在下面的地方, res.render 被插入。
function getMessage(query, callback) {
doQuery(query, function (err, result) {
if(err || !result.length) return callback('error or no results');
callback(null, result);
});
}
function doQuery(query, callback) {
connection.query(query, function(err, result) {
if(err) return callback(err);
callback(null, result);
});
};
getMessage(combinedQ, function(err, result){
maxAvgift=result[0].maxAvgift;
minAvgift=result[0].minAvgift;
maxRum=result[0].maxRum;
minRum=result[0].minRum;
maxArea=result[0].maxArea;
minArea=result[0].minArea;
maxPris=result[0].maxPris;
minPris=result[0].minPris;
getMessage(disctinctLan, function(err, result){
createJSON(result, lanList);
});
getMessage(disctinctObjekttyp, function(err, result){
createJSON(result, objekttypList);
});
getMessage(testQ, function(err, result){
console.log(result);
createResultArray(result);
render()
});
});
解决方案
推荐阅读
- android - 字符串资源文本无法在 Android 设备中正确显示
- google-sheets - 在 B 列或 C 列中查找值并在 A 列中返回键
- android - 如何让“触摸屏”通过串口在 Android 上工作?
- node.js - Mondodb 更新数组内的数组(嵌入)(mongoose/nodejs)
- python - plt.text out of plot 被切断 python
- python - 如何解决 oauthlib.oauth2.rfc6749.errors.TokenExpiredError:
- python - 改变熊猫多头/空头头寸的更有效方法
- aws-lambda - AWS Lambda:处理程序是同步还是异步,并发调用是否重要?
- excel - VBA 将工作表另存为桌面的新工作簿(无论用户如何)
- php - 请求实体太大 Laravel