我目前正在开发一个系统,用于存储客户的信息......其中一个信息是客户的地址。为此,我在我的数据库中创建了两个表:Address和Custumer。 我使用存储在客户表中的地址作为外键......到目前为止一切顺利。问题是我需要先保存地址,然后获取结果id(id为自动增量)并创建查询以使用该id保存客户,但我需要在使用node的同一函数中执行此操作,unfortunelly ,当我尝试这样做时,我收到了这个错误:
'错误:调用quit后无法将Query排入队列。'
以下是我的代码:
this.save = function(connection, object, callback){
let sqlAdress = utilClient.createSaveAdressQuery(object.address);
connection.query(sqlAdress , (error, results) => {
if(error) throw error;
objeto.address.id = results.insertId;
//After that the address is saved, I try to save the client
let sql = utilCliente.createSaveQuery(object);
connection.query(sql, (callback));
})
}
有谁知道如何帮助我?提前谢谢!
这是我的回调代码:
app.post("/save", function(request, response){
var custumer = request.body;
var connection = dbConnection();
eventoBanco.salvar(connection, custumer, function(error, result){
response.send(result);
if(error != null) console.log(error);
});
connection.end();
});
答案 0 :(得分:0)
我认为我能够通过这样做来解决这个问题:
clienteFactoryDAO.alterar(connection, cliente, function(erro, result){
response.send(result);
if(erro != null) console.log(erro);
connection.end();
});
您现在可以注意到,我在传递给函数的回调中关闭了连接查询。我的错误就像@Himanshusharma很好地指出:我正在关闭回调函数之外的连接,如你所知,JavaScript是异步的,所以它很快关闭了连接,当我需要它时,我什么也没得到。在此先感谢,我希望它能在某些时候帮助某人