如何将来自SQL查询的结果放在下拉列表中?

时间:2019-01-30 14:54:19

标签: mysql node.js express

我使用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()
    });
});

0 个答案:

没有答案