首页 > 解决方案 > 如何从数据库导入数据并将其存储在 node.js 应用程序的变量中以供以后使用

问题描述

我想尝试从数据库中获取数据(在我的情况下是问题)并将它们保存在一个数组中,以便在我的 javascript 代码的其余部分中使用。

我一直在用 node.js 中的 mysql 进行一些阅读和测试,以及它是如何异步的。查询后我已经能够获取数据,但是我无法将数据存储在代码中的其他位置,我想知道如何获取数据库数据,存储它,并将其用于我的其他区域js代码。

这是我的测试之一

这是服务器javascript的一部分

var questions;

io.on('connection', function(socket){

    socket.on('Get Questions', function(){

        const db = mysql.createConnection({
            host: "localhost",
            database: "playerdb",
            user: "root",
            password: "061298"
        });

        db.query("SELECT Question FROM quiz_questions", function(err, results){
            //if(err) console.log("Oh dear, " + err);
    
            for(var i = 0; i < results.length; i++){
                questions.push(results[i]);
            }
        })
    });

    io.sockets.emit('Send Questions', questions);
});

这是客户端javascript的一部分

    socket.emit('Get Questions');

    socket.on('Send Questions', function(qList){
        for(var c = 0; c < questions.length; c++){
            const newQuestion = document.createElement('li');
            newQuestion.innerHTML = qList[i];
    
            databaseData.appendChild(newQuestion);
        }
    })

此代码返回错误:“无法读取未定义的属性 'push'”

标签: javascriptmysqlnode.jsdatabasesocket.io

解决方案


您需要先初始化数组,然后才能对其进行push初始化

let questions = [];

推荐阅读