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