Mysql 用于循环和数据库查询的节点JS

Mysql 用于循环和数据库查询的节点JS,mysql,node.js,database,Mysql,Node.js,Database,我在一个函数上运行for循环,数据库在每个循环上都会更新。然后,它使用for循环再次调用数据库以更新数据库上的值。然而,我似乎得到了缓存的结果。这个错误有什么原因吗 我可以发布我的代码,但有点乏味。 这是模块函数上的一个简单for循环,该函数调用数据库请求,然后更新该数据库 module.exports.newElectronicHyperCredit = function(request){ gt = request.body.custom + "-" + Date

我在一个函数上运行for循环,数据库在每个循环上都会更新。然后,它使用for循环再次调用数据库以更新数据库上的值。然而,我似乎得到了缓存的结果。这个错误有什么原因吗

我可以发布我的代码,但有点乏味。 这是模块函数上的一个简单for循环,该函数调用数据库请求,然后更新该数据库

module.exports.newElectronicHyperCredit = function(request){
    gt = request.body.custom + "-" + Date.now()
    db.query(
        "SELECT * FROM Tenderizer.Stats ORDER BY ID DESC LIMIT 1",
        [

        ],
        function(error, stats){
            bsr = stats[0]['BuySellRate'];
            dv = stats[0]['DollarValue'];           
            credits = stats[0]['Credits'];
            for(i = 0; i < request.body.quantity; i++){
                bsr = dv / credits;
                dv = Number(dv) + 10;
                credits = Number(credits) + (7 / BSR);
                denomination = 7 / bsr;
                db.query(
                    "INSERT INTO Tenderizer.Stats SET ?",
                    {
                        BuySellRate: bsr,
                        DollarValue: dv,
                        Credits: credits
                    },
                    function(error, stats){

                    }
                )
                db.query(
                    "SELECT * FROM Tenderizer.Withdrawals ORDER BY case when Withdrawals.Owner = 'Rah1337' then 1 else 2 end, Withdrawals.ID DESC",
                    [

                    ],
                    function(error, withdrawals){
                        withdrawn = 0;
                        for(x in withdrawals){
                            if(denomination != 0){
                                if(withdrawals[x]['Denomination'] > denomination){
                                    withdrawn = withdrawn + denomination;
                                    db.query(
                                        "UPDATE Tenderizer.Withdrawals SET Denomination = Denomination - ? WHERE ID = ?",
                                        [
                                            denomination,
                                            withdrawals[x]['ID']
                                        ],
                                        function(error, points){

                                        }
                                    );
                                    db.query(
                                        "INSERT INTO Tenderizer.Points SET ?",
                                        {
                                            GenerationTag: withdrawals[x]['GenerationTag'],
                                            Owner: request.body.custom,
                                            Denomination: denomination,
                                            BoughtPoint: bsr,
                                            Since: Date.now()
                                        },
                                        function(error, points){

                                        }
                                    );
                                    db.query(
                                        "INSERT INTO Tenderizer.Payouts SET ?",
                                        {
                                            GenerationTag: withdrawals[x]['GenerationTag'],
                                            Owner: withdrawals[x]['Owner'],
                                            DollarValue: bsr * withdrawals[x]['Denomination'],
                                            Denomination: denomination,
                                            Processed: 0,
                                            Since: Date.now()
                                        },
                                        function(error, payouts){

                                        }
                                    );
                                    denomination = 0;
                                }else{
                                    withdrawn = withdrawn + denomination;
                                    db.query(
                                        "DELETE FROM Tenderizer.Withdrawals WHERE ID = ?",
                                        [
                                            withdrawals[x]['ID']
                                        ],
                                        function(error, withdrawals){

                                        }
                                    );

                                    db.query(
                                        "INSERT INTO Tenderizer.Points SET ?",
                                        {
                                            GenerationTag: withdrawals[x]['GenerationTag'],
                                            Owner: request.body.custom,
                                            Denomination: withdrawals[x]['Denomination'],
                                            BoughtPoint: bsr,
                                            Since: Date.now()
                                        },
                                        function(error, points){

                                        }
                                    );
                                    db.query(
                                        "INSERT INTO Tenderizer.Payouts SET ?",
                                        {
                                            GenerationTag: withdrawals[x]['GenerationTag'],
                                            Owner: withdrawals[x]['Owner'],
                                            DollarValue: bsr * withdrawals[x]['Denomination'],
                                            Denomination: withdrawals[x]['Denomination'],
                                            Processed: 0,
                                            Since: Date.now()
                                        },
                                        function(error, payouts){

                                        }
                                    );
                                    denomination = denomination - withdrawals[x]['Denomination'];
                                }
                            }
                        }
                        if(denomination > 0){
                            db.query(
                                "INSERT INTO Tenderizer.Pool SET ?",
                                {
                                    GenerationTag: gt,
                                    Username: request.body.custom,
                                    DollarValue: 10 - (withdrawn * bsr),
                                    Withdrawn: 0,
                                    Since: Date.now()
                                },
                                function(error, pool){

                                }
                            );
                            db.query(
                                "INSERT INTO Tenderizer.Points SET ?",
                                {
                                    GenerationTag: gt,
                                    Owner: request.body.custom,
                                    Denomination: denomination,
                                    BoughtPoint: bsr,
                                    Since: Date.now()
                                },
                                function(error, points){

                                }
                            );
                        }
                        db.query(
                            "UPDATE Tenderizer.EHC_Count SET Credits = Credits + ? WHERE Username = ?",
                            [
                                7 / bsr
                            ],
                            function(error, ehc_count){

                            }
                        );
                    }
                );
            }
        }
    );
};
module.exports.newElectronicHyperCredit=函数(请求){
gt=request.body.custom+“-”+Date.now()
db.query(
“从投标者中选择*。按ID描述顺序统计限制1”,
[
],
函数(错误、统计信息){
bsr=stats[0]['BuySellRate'];
dv=stats[0]['DollarValue'];
积分=统计数据[0]['credits'];
对于(i=0;i面额){
撤回=撤回+面额;
db.query(
“更新投标者。取款集面额=面额-?其中ID=?”,
[
面额
取款[x]['ID']
],
功能(错误、点数){
}
);
db.query(
“插入到投标书中。点集?”,
{
GenerationTag:取款[x]['GenerationTag'],
所有者:request.body.custom,
面额:面额,
布希特点:bsr,
自:日期。现在()
},
功能(错误、点数){
}
);
db.query(
“插入到投标者中。支付设置?”,
{
GenerationTag:取款[x]['GenerationTag'],
所有者:取款[x][“所有者”],
DollarValue:bsr*取款[x][“面额”],
面额:面额,
处理:0,
自:日期。现在()
},
功能(错误、支出){
}
);
面额=0;
}否则{
撤回=撤回+面额;
db.query(
“从招标人处删除。在ID=?”处撤销”,
[
取款[x]['ID']
],
功能(错误、取款){
}
);
db.query(
“插入到投标书中。点集?”,
{
GenerationTag:取款[x]['GenerationTag'],
所有者:request.body.custom,
面额:提款[x][“面额”],
布希特点:bsr,
自:日期。现在()
},
功能(错误、点数){
}
);
db.query(
“插入到投标者中。支付设置?”,
{
GenerationTag:取款[x]['GenerationTag'],
所有者:取款[x][“所有者”],
DollarValue:bsr*取款[x][“面额”],
面额:提款[x][“面额”],
处理:0,
自:日期
const createConnectionPool = require('@databases/mysql');
const {sql} = require('@databases/mysql');

const db = createConnectionPool();

module.exports.newElectronicHyperCredit = async function(request){
    let gt = request.body.custom + "-" + Date.now()
    const stats = await db.query(
        sql`SELECT * FROM Tenderizer.Stats ORDER BY ID DESC LIMIT 1`,
    );
    let bsr = stats[0]['BuySellRate'];
    let dv = stats[0]['DollarValue'];           
    let credits = stats[0]['Credits'];
    for(let i = 0; i < request.body.quantity; i++){
        bsr = dv / credits;
        dv = Number(dv) + 10;
        credits = Number(credits) + (7 / BSR);
        denomination = 7 / bsr;
        await db.query(sql`
            INSERT INTO Tenderizer.Stats (BuySellRate, DollarValue, Credits)
            VALUES (${bsr}, ${dv}, ${credits}
        `)
        const withdrawals = await db.query(sql`
            SELECT * FROM Tenderizer.Withdrawals
            ORDER BY case when Withdrawals.Owner = 'Rah1337' then 1 else 2 end, Withdrawals.ID DESC
        `)
        withdrawn = 0;
        for(x in withdrawals){
            if(denomination != 0){
                if(withdrawals[x]['Denomination'] > denomination){
                    withdrawn = withdrawn + denomination;
                    await db.query(sql`
                        UPDATE Tenderizer.Withdrawals
                        SET Denomination = Denomination - ${denomination}
                        WHERE ID = ${withdrawals[x]['ID']}
                    `);
                    await db.query(sql`
                        INSERT INTO Tenderizer.Points (GenerationTag, Owner, Denomination, BoughtPoint, Since)
                        VALUES (
                            ${withdrawals[x]['GenerationTag']},
                            ${request.body.custom},
                            ${denomination},
                            ${bsr},
                            ${Date.now()}
                        )
                    `);
                    await db.query(sql`
                        INSERT INTO Tenderizer.Payouts (GenerationTag, Owner, DollarValue, Denomination, Processed, Since)
                        VALUES (
                            ${withdrawals[x]['GenerationTag']},
                            ${withdrawals[x]['Owner']},
                            ${bsr * withdrawals[x]['Denomination']},
                            ${denomination},
                            ${0},
                            ${Date.now()}
                        )
                    `);
                    denomination = 0;
                }else{
                    withdrawn = withdrawn + denomination;
                    await db.query(
                        sql`DELETE FROM Tenderizer.Withdrawals WHERE ID = ${withdrawals[x]['ID']}`
                    );

                    await db.query(sql`
                        INSERT INTO Tenderizer.Points (GenerationTag, Owner, Denomination, BoughtPoint, Since)
                        VALUES (
                            ${withdrawals[x]['GenerationTag']},
                            ${request.body.custom},
                            ${withdrawals[x]['Denomination']},
                            ${bsr},
                            ${Date.now()}
                        )
                    `);
                    await db.query(sql`
                        INSERT INTO Tenderizer.Payouts (GenerationTag, Owner, DollarValue, Denomination, Processed, Since)
                        VALUES (
                            ${withdrawals[x]['GenerationTag']},
                            ${withdrawals[x]['Owner']},
                            ${bsr * withdrawals[x]['Denomination']},
                            ${withdrawals[x]['Denomination']},
                            ${0},
                            ${Date.now()}
                        )
                    `);
                    denomination = denomination - withdrawals[x]['Denomination'];
                }
            }
        }
        if(denomination > 0){
            await db.query(sql`
                INSERT INTO Tenderizer.Pool (GenerationTag, Username, DollarValue, Withdrawn, Since)
                VALUES (
                    ${gt},
                    ${request.body.custom},
                    ${10 - (withdrawn * bsr)},
                    ${0},
                    ${Date.now()}
                )
            `);
            await db.query(sql`
                INSERT INTO Tenderizer.Points (GenerationTag, Owner, Denomination, BoughtPoint, Since)
                VALUES (
                    ${gt},
                    ${request.body.custom},
                    ${denomination},
                    ${bsr},
                    ${Date.now()}
                )
            `);
        }
        await db.query(sql`UPDATE Tenderizer.EHC_Count SET Credits = Credits + ${7 / bsr} WHERE Username = ${request.body.custom}`)
    }
};