节点Mysql查询与增量变量

时间:2017-06-21 11:19:44

标签: javascript mysql node.js facebook-messenger-bot

我有问题为什么查询中的变量不会递增? 我的代码:

function processMessage(event) {
    if (!event.message.is_echo) {
        let message = event.message;
        let senderId = event.sender.id;

    console.log("Received message from senderId: " + senderId);
    console.log("Message is: " + message);
    console.log();
    var user = {
        user_name: '',
        question_index: 0,
    }


    if (message.quick_reply.payload === 'Pass') {
        connection.query("SELECT text FROM quiz_questions WHERE quiz_id = ?", [question_index], function(error, results, fields) {
            if (error) throw error;
            let jsonQuestionResult = getRealResults(results);
            connection.query("SELECT text FROM question_option WHERE quiz_question_id = ?", [question_index], function(error, results, fields) {
                if (error) throw error;
                let jsonAnswerResult = getRealResults(results);
                console.log(jsonAnswerResult[0]);
                sendQuestionAnswer(senderId, jsonQuestionResult[0].text, jsonAnswerResult[0].text, jsonAnswerResult[1].text, jsonAnswerResult[2].text);
                user.question_index++;
            })
        })
    }
}
}

我增加了user.question_index但是当我调用processMessage函数时它不适用那里有什么问题?或者当我用有效载荷(通过)调用快速回复时,如何使用它来显示数据库中的下一列?

1 个答案:

答案 0 :(得分:1)

在processMessage之外定义您的用户变量。每次调用方法时,它都会重新初始化为默认值0.因此,如果要保留值

var user = {
        user_name: '',
        question_index: 0,
    }


function processMessage(event) {
    if (!event.message.is_echo) {
        let message = event.message;
        let senderId = event.sender.id;

    console.log("Received message from senderId: " + senderId);
    console.log("Message is: " + message);
    console.log();



    if (message.quick_reply.payload === 'Pass') {
        connection.query("SELECT text FROM quiz_questions WHERE quiz_id = ?", [question_index], function(error, results, fields) {
            if (error) throw error;
            let jsonQuestionResult = getRealResults(results);
            connection.query("SELECT text FROM question_option WHERE quiz_question_id = ?", [question_index], function(error, results, fields) {
                if (error) throw error;
                let jsonAnswerResult = getRealResults(results);
                console.log(jsonAnswerResult[0]);
                sendQuestionAnswer(senderId, jsonQuestionResult[0].text, jsonAnswerResult[0].text, jsonAnswerResult[1].text, jsonAnswerResult[2].text);
                user.question_index++;
            })
        })
    }
}
}