在Javascript函数中返回循环值

时间:2017-03-10 11:46:31

标签: javascript mysql loops for-loop return

我正在尝试创建一个函数来抓取数据库表(平台)中的所有行,这些行在数组中插入每个行名(platform_name)。这最终应该在我的HTML文档中输出行列表。

以下是相关代码:

var getData = new function() {
    
    this.query = 'SELECT * FROM platforms';
    
    this.exe = function() {
        
        // Connecting to MySQL Database
        
        var mysql = require('mysql');

        var connection = mysql.createConnection({
            host: 'localhost',
            user: 'root',
            password: 'pass',
            database: 'chatter'
        });
        
        var platforms = new Array; // Creating array to return
        
        // Getting the rows from the database
        
        connection.query(this.query, function(err, rows, fields) {   

            // Adds every row to the platforms array
            
            for(var i in rows) {
                
                platforms.push(String(rows[i].platform_name));
                
            }
            
        });
        
        return platforms; // Returns array

        connection.end();
        
    }
    
}
<script> console.log(getData.exe()); </script>
<script> getData.exe(); </script>

当我在console.log中运行getData.exe()函数时,它会输出:

enter image description here

当我按原样运行该功能时,它不会返回任何内容......惊喜!

我有点困惑于这个问题,所以我希望一个友善的灵魂有能力看看这个。我几乎是javascript的新手,因为我想学习使用node.js制作本地网站。

2 个答案:

答案 0 :(得分:1)

您需要在变量中指定函数的返回值,以便稍后使用。只调用此函数将返回数据但没有任何用处。

答案 1 :(得分:0)

您需要将getData.exe()方法的结果写入html文档,例如

<script> document.write(getData.exe()); </script>