2015-08-24 17 views
0

我已經閱讀了很多指南,並沒有找到我需要的內容,所以也許你可以幫助我! :)使用Express的Node.js:更改某個路徑的響應數據

我創建了一個UI5應用程序,我在服務器端使用Node.js和Express。我從SQL數據庫中檢索數據並將其顯示在UI5中。對於這一點,我做了在服務器端執行以下操作:

request.query(statement, function(err, recordset) { 
     if(err) { 
      console.log("SQL error: " + err); 
     } 
     app.use('/Scanners', function(req, res) { 
      res.send(recordset); 
     }); 

在客戶端,通過該返回檢索值:

$.ajax({ 
     url: "/Scanners" 
    }).done(function(data, status, jqxhr) { 
     var oModel = new sap.ui.model.json.JSONModel(); 
     var modelData = 
"{ \"Number\": " + (totalScanners-(+data[0].Number))+ "}"; 
     oModel.setData(JSON.parse(modelData)); 
     var oTextView = sap.ui.getCore().byId("tvscanner"); 
     oTextView.setModel(oModel); 

現在,有一些文本框,從中我讀取值,然後在數據庫上執行UPDATE操作。完成後,我想重複上面顯示的第一個操作,但路徑/Scanners上的數據不會更改。我怎樣才能使這項工作發揮作用?

感謝您的幫助!

回答

2

你或許應該移動查詢的請求回調裏面,像這樣:

app.use('/Scanners', function(req, res) { 
    request.query(statement, function(err, recordset) { 
     if(err) { 
      console.log("SQL error: " + err); 
      res.send(JSON.stringify({error: "SQL ERROR: " + err})); 
     } else { 
      res.send(recordset); 
     } 
    } 
}); 

您可以替代你用別的東西,比如空響應發送錯誤的行。只記得發回一些東西,或者客戶端會等待很長時間,直到請求被取消以發生超時錯誤。

+0

如果可以的話,我會贊成!謝謝。 :) – sarcasm

相關問題