NodeJS Infinispan缓存访问

时间:2016-03-28 09:29:50

标签: node.js infinispan

上下文:在NodeJ中,我尝试在缓存中读取和写入Infinispan部署的远程服务器。可以从Java代码访问Infinispan中缓存的数据,但我无法从NodeJS访问相同的数据。

下面的代码段

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 }

我得到的是“Promise”,因为它不是我期待的值(NULL)。所以我认为即使我的值甚至没有设置(put函数不起作用),因为如果它将被设置,那么我将能够在我的Java代码中读取它。

有人可以帮助我吗?

1 个答案:

答案 0 :(得分:0)

filterby确实是一个承诺,这是对的。请记住,您只能使用showGet中的回调或类似的链接方法处理来自Promises的值。就像你使用控制台输出调用来获取密钥一样。

因此,要获得您期望的空值,您必须这样做:

then()

您可以找到有关使用Promise API here

的更多信息