2013-11-03 86 views
0

由於工作原因,我必須首次使用RestFul Api,Json和NodeJS從NoSQL數據庫KairosDB中檢索數據。 Here's the definition of the method to return datapoints with a Post functionJavascript Post函數到現有的Rest API

我的理解是,我必須製作一個帶有用戶選定參數的JSON,然後將這個JSON發送到上面的url。

有人建議我使用NodeJS,我已經從官方網站閱讀,我已經安裝了它,並開始了一個教程,學習了我創建一個小型Web服務器。

無論如何,我完全停留在使Post函數調用這些參數的方式上。

我的經驗。由於,我在心裏是怎麼做的事情上面一個簡單的HTML頁面,例如:

<!DOCTYPE html> 
<html> 
<head> 
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"> 
</script> 
<script> 
var myUrl="http://192.168.1.46:8080/api/v1/datapoints/query"; 
$.ajax({   
    url: myUrl , 
    data: {metrics: [{tags: {}, name: "AIENR", 
     aggregators: [ 
     { 
      name: "sum", 
      sampling: { 
      value: "1", 
      unit: "milliseconds" 
      } 
     } 
     ] 
    } 
    ], 
    cache_time: 0, 
    start_absolute: 1328223600000, 
    end_absolute: 1351983600000 
}, 
    type: 'POST', 
    success: function (resp) { 
     alert(resp); 
    }, 
    error: function(e){ 
     alert('Error: '+e); 
    } 
}); 
</script> 
</head> 
<body> 
</body> 
</html> 

不管怎麼說,上面的代碼給我一個錯誤:Object對象,我不瞭解如何使用Node JS實現這一點,以及如何聯繫它來檢索結果。謝謝

回答

1

首先,您應該搜索您的NoSQL數據庫是否存在node.js驅動程序/連接器。如果它存在並且它是穩定的 - 就使用它。

否則:

你能做到這一點的硬路(使用核心模塊,如httphttps),或使用模塊像request

然後,在node.js中,你會打電話給你的NoSQL數據庫或多或少是這樣的:

var request = require('request'); 

request({ 
    uri: 'http://127.0.0.1:8080/api/v1/datapoints/query', 
    method: 'POST', 
    json: {some: "jsonfile"}, 
    timeout: 10000 
}, function (err, response, body) { 

    // error handling 

    // take some values from body and send it to client 

}); 
+0

感謝您的回答,很不幸,沒有一個驅動程序或KairosDB的連接器。 – alessandrob