2016-03-28 95 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)文件中的所有示例都会执行此操作。 –