2016-08-14 145 views
0

我有一個使用node.js express框架的程序。 在那裏我有一個名爲index.js的文件,它處理事物的服務器端。 它有一個對象(latestResults = {}),它存儲分配給時間戳的json對象(latestResults [timestamp] = jsonObj)。使用AJAX GET請求獲取對象

在一個名爲visualization.js(client)的文件中,我想訪問該對象。 我想使用AJAX GET請求,但坦率地說,我不知道這是怎麼回事,我在網上找不到任何東西。 網址如何顯示?

+0

你可以在你的'index.js'文件中顯示一些代碼。 latestResults如何存儲? –

+0

var latestResults = {} 它充滿了分配給時間戳的json對象 – Johannes

回答

0

已經改進我的OG什麼OP是問知識我會盡量回答是這樣的:

用於安裝其他端點服務與latestResult對象的客戶,你將不得不做一些類似的東西:

var app = express(); 
app.get('/latestResults', function (req, res) { res.send (global.latestResults); }); 

和獲取的對象,你可以使用jQuery(https://api.jquery.com/jquery.get/):

jQuery.get('/latestResults', function (latestResults) { visualize(latestResults); }); 

或者angularjs(https://docs.angularjs.org/api/ng/service/ $ http),或者我更喜歡 - 因爲這已經在某些瀏覽器中實現了(https://github.com/github/fetch

+0

我假設latestResults作爲全局變量存儲在服務器端。 –

+0

非常感謝你!我會盡快嘗試。 – Johannes

0

一個簡單的Ajax代碼應該是這樣的:

創建一個JSON對象的數據與發送請求,如果需要的話。

var data = {}; 
//insert values in data object. 
$.ajax({ 
      url: 'yourUrl', 
      data: data, 
      processData: false, 
      contentType: false, 
      type: 'POST', 
      dataType:'json', 
      success: function(response){ 
       //access response variable sent from server. 
      },error : function(response){ 
      //process error 
      }}); 

index.js文件應在處理該POST調用的走向,應該響應送出可變latestResults的路線。

+0

您確定,我需要先發布它嗎? lestestResults隨時間變化,我只需要從客戶端 – Johannes

+0

訪問它,你可以做POST或GET調用,這取決於你的需求和你。如果您的latestResults取決於客戶端,請在POST調用中以數據形式發送更新的值。 –

0

也許你可以試試這個:

內index.js

window.myObj = (function (myObj) { 

    var latestResults = {}; 

    myObj.getLatestResults = function() { 
     return latestResults; 
    } 

    return myObj; 

}(window.myObj || {})); 
  1. 上面的代碼使用了一個匿名函數創建一個封閉限制全局變量的數量(window.myObj是一個全局變量)。
  2. 該函數接收window.myObj變量(如果它已經存在)或空對象(如果window.myObj確實存在)。這是爲了避免需要以正確的順序包含js文件。
  3. 給定的對象將被與該功能富集getLatestResults這又返回latestResults對象。

而且裏面visualization.js

window.myObj = (function (myObj) { 

    myObj.visualize = function() { 
     ... 
     var data = myObj.getLatestResults()[timestamp]; 
     ... 
    } 

    return myObj; 

}(window.myObj || {})); 
  1. 相同的過程index.js。閉包接收全局變量myObj(window.myObj)。
  2. window.myObj充實了功能可視化(不需要做這一步,但我認爲你需要一些功能來做你的可視化的東西)。
  3. 功能形象化然後能夠通過myObj.getLatesResults得到的latestResults保持。
+0

這個想法是根本不使用AJAX調用,因爲您已經將所有對象都緩存在javascript中。 –

+0

你能簡單解釋一下發生了什麼嗎? – Johannes

+0

編輯問題 - 添加簡要說明。 –