我正在编写一个执行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)时,响应对象变为不可写。
在查询完成执行后是否有任何编写响应的方法?