gpt4 book ai didi

javascript - Node.js,多个 MySQL 插入

转载 作者:行者123 更新时间:2023-11-28 23:13:58 24 4
gpt4 key购买 nike

我想在我的服务器-客户端-应用程序的特定顺序中执行多个 MySQL 插入操作。

var con = createDatabaseConnection();

function createDatabaseConnection() {
return (mysql.createConnection({
host: // hostIp,
user: // user,
password: //pw,
database: //databasename
});
}

function writeFoo(fooObject) {
var sql = // prepare sql insert for fooObject;
con.query(sql, function (err) {
// ? Is inserted data ready to use ?
}
});

function writeBar(barObject) {
var sql = // prepare sql insert for barObject;
con.query(sql, function (err) {
// ? Is inserted data ready to use ?
});
});

// Both arrays containing an unpredictable amount of objects
var fooArray = [];
var barArray = [];

关键是我必须绝对确定 fooArray 中的 fooObject 是在插入 barArray 之前插入的.因为 writeBar() 中使用的 SQL INSERT 语句包含一个 SELECT 语句,该语句必须找到插入到 writeFoo() 中的数据。并且随时可能发生事件(客户端发送需要插入的数据),这也需要此功能。

实际情况有点复杂,但我认为这是目前的主要问题。

最佳答案

您可以将它们链接在 promise 中, 这样你就可以确保每个电话都井井有条,例如:

var con;
function createDatabaseConnection() {
return new Promise(function (resolve, reject) {
mysql.createConnection({
host: hostIp,
user: user,
password: pw,
database: databasename
}, function(err, res){
if(err) reject(err);
else resolve(res);
});
});
}

function writeFoo(fooObject) {
let sql = fooObject;
return new Promise(function (resolve, reject) {
con.query(sql, function (err, res) {
if(err) reject(err);
else resolve(res);
});
});
}

function writeBar(barObject) {
let sql = barObject;
return new Promise(function (resolve, reject) {
con.query(sql, function (err, res) {
if(err) reject(err);
else resolve(res);
});
});
}

createDatabaseConnection()
.catch(function (error) {
// connection failed
// log info
console.error(error);
process.exit(0);
})
.then(function (res) {
con = res;
return writeFoo(fooObject);
})
.catch(function (error) {
// writeFoo(fooObject) failed
// log info
console.error(error);
process.exit(0);
})
.then(function () {
return writeBar(barObject);
})
.catch(function (error) {
// writeBar(barObject) failed
// log info
console.error(error);
process.exit(0);
});

关于javascript - Node.js,多个 MySQL 插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44704079/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com