2016-03-28 77 views
0

上下文:在NodeJs中,我試圖讀取和寫入緩存中的Infinispan所在的遠程服務器。 Infinispan中緩存的數據可以從Java代碼訪問,但我無法從NodeJS訪問它們。NodeJS Infinispan緩存訪問

代碼段下面

var infinispan = require('infinispan');    
var connected = infinispan.client({port: 11224, host: '10.232.200.XXX'}, {cacheName: 'XYZ_CACHE'}); 

connected.then(function (client) {     
var clientPut = client.put('Key1234', 'valueofCache');   
var clientGet = clientPut.then(              
function() { return client.get('Key1234');   
}); 
var showGet = clientGet.then(    
function(value) { console.log('get(key)=' + value);    
});     
console.log(showGet));   
)} 

輸出在控制檯上顯示=>

[2016-03-28 14:32:29.447] [DEBUG] connection - Connecting to 10.232.200.XXX:11224 
[2016-03-28 14:32:29.479] [DEBUG] connection - Connected to 10.232.200.XXX:11224 

[2016-03-28 14:32:29.481] [DEBUG] client - Invoke put(msgId=1,key=Key1234,value=valueofCache,opts=undefined) 

[2016-03-28 14:32:29.485] [TRACE] router - Write buffer(msgId=1) 

Promise { _45: 0, _81: 0, _65: null, _54: null } 

我正在 「無極」 作爲出放其不是值(NULL)我期待。所以我想即使我的值甚至沒有設置(放函數不工作),因爲如果它將被設置,那麼我將能夠在我的Java代碼中讀取它。

任何人都可以幫助我嗎?

回答

0

showGet確實是一個承諾,沒錯。請記住,您只能使用then()或類似的鏈接方法處理來自Promises的回調值。就像你使用控制檯輸出調用獲取密鑰一樣。

所以,讓你期待的空值,你必須做的:

showGet.then(function(thisParameterShouldBeUndefined) { 
    console.log(thisParameterShouldBeUndefined); 
}); 

你可以找到關於使用無極API here

+0

其實更多的信息,以連鎖正確的事情,你應該總是返回最後回調中創建的最後一個Promise。所以,在最後一行添加'return showGet'。 [README](https://github.com/infinispan/js-client/blob/master/README.md)文件中的所有示例都會執行此操作。 –