1

由於Azure移動應用程序沒有提供創建表之間關係的方法,因此我決定在我的Node.js後端創建一個自定義API以從相關表中返回數據。這個想法是使用SQL在後端實現連接,就像在Mobile Services Doc中解釋的一樣。使用SQL在移動應用程序Node.js後端實現表連接使用SQL

問題是我正在使用新的移動應用程序,而不是舊的移動服務,所以上面的代碼不再工作。據我所知,體系結構已從移動服務改爲移動應用程序,而Node.js SDK是一個快速中間件軟件包。所以現在我們利用azure-mobile-apps/src/data模塊來處理sql操作。

所以我現在我必須做這樣的事情,從一個表中的節點後端內自定義API閱讀:

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 }); 
     }); 
    } 
}; 

但由於SQL不再被暴露,我不能使用JOIN命令從相關表中返回數據。我將不得不使用循環和許多請求到數據庫,這是違背了目的。

- 是否有辦法在新的移動應用程序Node.js SDK中使用SQL實現後端連接?或者其他更好的方法?

非常感謝!

回答

1

您可以生成join sql stmt並利用可以包含sql stmt的sqlQuery對象,然後使用data.execute函數來directlu執行sql stmt。您可以參考樣本https://github.com/Azure/azure-mobile-apps-node/blob/master/samples/custom-api-sql-stmt/api/completeall.js瞭解相似的情況。

同時,您可以在Azure SQL數據庫中創建包含連接標記的View表,以便在Easy API腳本中使用並保持View SQL語句。

+0

非常感謝,它的作品!這是我的最終代碼: 'module.exports = { 「搞定」:功能(REQ,水庫,下一個){ VAR的查詢= { SQL語句: 'SELECT @ P1 FROM ...', 參數: [{name:'p1',value:req.query.parameterName}] }; (query).then(function(results){ res.send({some:results}); },function(error){ console.log('Found an error: ',error); }); } };' –

相關問題