1

Da Azure Mobile Apps keine Möglichkeit zum Erstellen von Beziehungen zwischen Tabellen bietet, entschied ich mich, eine benutzerdefinierte API in meinem Node.js-Backend zu erstellen, um Daten aus verknüpften Tabellen zurückzugeben. Die Idee war, die Joins im Backend mit SQL zu implementieren, wie in der Mobile Services Doc erläutert.Implementieren von Tabellen-Joins im Mobile Apps Node.js-Back-End mithilfe von SQL

Das Problem ist, dass ich die neuen Mobile Apps und nicht die alten Mobile Services verwende, so dass der obige Code nicht mehr funktioniert. Wie ich weiß, hat sich die Architektur von Mobile Service zu Mobile Apps geändert und das Node.js SDK ist ein Express-Middleware-Paket. Jetzt nutzen wir azure-mobile-apps/src/data Modul, um SQL-Operationen zu behandeln.

So, jetzt bin ich so etwas wie dies zu tun, aus einer Tabelle in einer benutzerdefinierten API innerhalb des Knoten Backend zu lesen:

var queries = require('azure-mobile-apps/src/query'); 

module.exports = { 

    "get": function (req, res, next) { 

     var myTable = req.azureMobile.tables('TableName'); 
     var query = queries.create('TableName'); 
     query.where({'id':req.query.userId}); 

     myTable.read(query).then(function(data){ 
      res.send({ some: data }); 
     }); 
    } 
}; 

Aber da die SQL nicht mehr ausgesetzt ist, kann ich nicht den Befehl JOIN verwenden, um gibt Daten aus verwandten Tabellen zurück. Ich müsste Schleifen und viele Anfragen an die Datenbank stellen, die den Zweck vereiteln.

- Gibt es eine Möglichkeit, die Joins im Backend mithilfe von SQL für das neue Mobile Apps Node.js SDK zu implementieren? Oder ein anderer besserer Weg?

Vielen Dank!

Antwort

1

Sie können die join sql stmt generieren und ein sqlQuery Objekt mit can contain sql stmt verwenden, dann verwenden Sie data.execute Funktion, um die sql stmt direkt auszuführen. Sie können sich auf das Beispiel https://github.com/Azure/azure-mobile-apps-node/blob/master/samples/custom-api-sql-stmt/api/completeall.js für das ähnliche Szenario beziehen.

In der Zwischenzeit können Sie eine View-Tabelle in Azure SQL-Datenbank erstellen, die den Join-Stmt enthält, um die Verwendung in Easy-APIs-Skripts zu vereinfachen und den SQL-View-View zu verwalten.

+0

Vielen Dank, es funktioniert! Hier ist meine letzte Code: 'module.exports = { "get": function (req, res, next) { var query = { SQL: SELECT @ p1 FROM ... ', Parameter: [{name: 'p1', Wert: req.query.parameterName}] }; req.azureMobile.data.execute (Abfrage) .then (Funktion (Ergebnisse) { res.send ({einige: Ergebnisse}); }, Funktion (Fehler) { console.log ('Fehler gefunden: ', Fehler); }); } }; ' –