2017-08-01 1 views
-1

Ich habe eine Funktion in Nodejs, wo ich Kunden von SQL-Datenbank abrufen und ich muss es der Variablen zuweisen, um es für die weitere Verarbeitung zu verwenden.Nodejs Werte globalen Variablenvariablen zuweisen

Unten ist mein Code:

function getCustomers() { 

    var i; 
    var conn = new sql.Connection(dbConfig); 
    var _customerName; 
    conn.connect().then(function() { 
     var req = new sql.Request(conn); 
     req.query("SELECT CustomerName FROM CUSTOMERS").then(function (recordset) { 
      //console.log(recordset); 
      for (i = 0; i <= recordset.length; i++) { 
       _customerName = String(recordset[i].NAMECUST); 
      } 
      return _customerName; 
      // conn.close(); 
     }) 
     .catch(function (err) { 
      console.log(err); 
      //conn.close(); 
     }); 
    }) 
    .catch(function (err) { 
     console.log(err); 
    }); 
    finalize(obj, function() { 
     return _customerName; 
    }); 


} 
//console.log(); 

const categories = { 
    "headquarters": { 
    "category": "headquarters", 
    "suggestion": "Headquarters", 
    "facts": [ 
     "Customer 1", 
     "Customer 2", 
     "Customer 3" 
    ], 
    "factPrefix": "Okay, here's a Customer fact." 
    } 


}; 

Ich bin nicht in der Lage, den Wert aus einer Funktion abrufen und zu den Kategorien Variablen zuweisen.

+0

Es ist nicht klar, was Sie fragen ... wann führen Sie die 'GetCustomers()' Funktion? Wie benutzt du 'Kategorien'? Das ist offensichtlich nicht der ganze Code, also bin ich mir nicht sicher, was Sie genau fragen. – jakerella

+0

eigentlich habe ich eine Funktion, wo ich Kunden mit dem Namen GetCustomers abrufen. und dann möchte ich alle abgerufenen Kunden der globalen Variablen namens Kategorien zuweisen. Ich möchte wissen, wie es nach der Ausführung der Funktion zugewiesen wird. –

+0

Immer noch nicht ... fragen Sie nur, wie Sie einer Variablen in JS einen Wert zuweisen? Wie 'categories.headquarters.facts.push (_customerName)' ?? – jakerella

Antwort

0

Oben eine Variable deklarieren var categories = {};

und weisen Sie den Wert innerhalb der Methode GetCustomers() zu.

Aber dies ist nicht der richtige Weg, um dies zu tun, müssen Sie Callback-Methode verwenden und Daten in Callback-Methode zurückgeben.

0

Ich denke, Sie müssen Zuordnung Codezeile in Callback-Funktion drücken. Ihr Code kann wie folgt aussehen:

const categories = { 
    "headquarters": { 
    "category": "headquarters", 
    "suggestion": "Headquarters", 
    "facts": [], 
    "factPrefix": "Okay, here's a Customer fact." 
    } 
function getCustomers() { 

    var i; 
    var conn = new sql.Connection(dbConfig); 
    var _customerName; 
    conn.connect().then(function() { 
     var req = new sql.Request(conn); 
     req.query("SELECT CustomerName FROM CUSTOMERS").then(function (recordset) { 
      //console.log(recordset); 
      for (i = 0; i <= recordset.length; i++) { 
       categories.headequaters.facts.push(recordset[i].NAMECUST) 
      } 
     }) 
     .catch(function (err) { 
      console.log(err); 
      //conn.close(); 
     }); 
    }) 
    .catch(function (err) { 
     console.log(err); 
    }); 
    finalize(obj, function() { 
     return _customerName; 
    }); 
} 
}; 
+0

Nein, das funktioniert nicht. –

+0

Oh Entschuldigung, eigentlich müssen Sie nichts zurückgeben, nachdem die Schleife abgeschlossen ist, wird die Kategorie mit Kundendaten gefüllt. Ich habe die Antwort bearbeitet – thelonglqd

Verwandte Themen