Ich arbeite an einer sehr einfachen Webanwendung, die nicht viel tut, aber es verbindet sich mit einer Datenbank für INSERT und SELECT-Operationen auf einer Tabelle. Ich habe eine Funktion, die ich beim Browsen durch mehrere große Tutorials verwendet habe, aber ich habe Schwierigkeiten, die rows
aus der SELECT-Abfrage zurückzugeben. In Erinnerung, ich lerne Node.JS - wie würde ich die Daten aus der Abfrage (SELECT) an diesen Block anzeigen?Rückgabewert von innerer Funktion einer Funktion node.js/MySQL
app.post("/getcsv", function(req,res){
var sqlselall = "SELECT * FROM office";
var rows = handle_database(sqlselall);
res.json(rows);
res.end();
Die Funktion der Datenbankverbindungen (mit Pooling) für die Handhabung:
function handle_database(sqlstmt){
pool.getConnection(function(err,connection){
if(err) {
res.json({"code" : 100, "status" : "Error in connection to database."});
return;
}
console.log('connected as id ' + connection.threadId);
connection.query(sqlstmt, function(err,rows){
connection.release();
if(!err){
console.log("Number of rows affected: " + rows.affectedRows);
}
});
connection.on('error', function(err) {
res.json({"code": 100, "status" : "Error in connection to database."});
return;
});
ich, dass die rows
in der inneren Funktion erkennen die Daten enthalten, ich brauche, aber ich bin ratlos, wie zu wie man es zurückgibt, wenn ich die Funktion rufe.
Mögliches Duplikat von [Wie gebe ich die Antwort von einem asynchronen Anruf zurück?] (Https://stackoverflow.com/questions/14220321/how-do-i-return-the-response-from-a-asynchronous- Ruf) – Paul
@Paul - leider habe ich Probleme, das Konzept der Rückrufe in JS vollständig zu begreifen. – Smitty
es ist nur etwas, was Sie durch einige Tutorials auf durchlaufen müssen. Callbacks sind nur Funktionen, aber das Fleisch, das Sie möchten (z. B. die Zeilen), ist nur innerhalb dieser Funktion beschränkt. Sie müssen also sicherstellen, dass alles, was Sie benötigen, im selben Umfang verfügbar ist. – Paul