Я пишу функцию, которая выполняет SQL-запрос следующим образом:
function handle_request(req, res) {
var data = "";
if (req.method == 'POST') {
req.on('data', function(chunk) {
data += chunk.toString();
});
req.on('end', function() {
sql_validator.validate_query(data, res, write_response);
});
}
}
function write_response(response, is_valid){
response.writeHead(200, "OK", {'Content-Type': 'text/html'});
if(is_valid){
response.end("Success");
}
else {
response.end("Failure");
}
}
Функция validate_query выглядит следующим образом:
function validate_query(query, response, callback) {
var connection = DB.connect({
//db_parameters
}, function(err) {
if (err){
console.log("Failed to connect: " + err);
}else{
console.log("Connection established");
connection.query(query, function(err, fields, rows, status) {
if (err){
console.log(err);
callback(response, false);
throw err;
}
else{
callback(response, true);
}
});
}
});
}
Проблема в том, что ответ не полученна стороне запрашивающей стороны (который является кодом PHP).
При распечатке объекта ответа на различных этапах оказывается, что объект ответа становится недоступным для записи к моменту обратного вызова (response, true / false).
Есть ли способ написать ответ после завершения выполнения запроса?