2012-05-03 70 views
3

我正在玩riak-java客戶端。Riak ReferenceError - 與自定義javascript

現在我遇到了自定義JavaScript的麻煩,我想在地圖減少查詢中使用。

如果我使用純javascript函數作爲anon函數,它們運行良好。

因此,這裏是我做過什麼:在/ tmp/js_source

取消註釋在app.conf

{js_source_dir, "/tmp/js_source"}, 

然後我存儲mylib.js

/* content of mylib.js */ 
var NS = (function() { 
    return { 
     mapHighValues: function(value, keydata, arg) { 
      var data = JSON.parse(value.values[0].data); 
      ejsLog('/tmp/map_reduce.log', JSON.stringify(data.High)); 
      return [data.High];} 
     }, 
     reduceSumHighValues: function(values) { 
      ejsLog('/tmp/map_reduce.log', "ReduceVals\n" + JSON.stringify(values)); 
      return [values.reduce(function(prev, curr, index, array) {return prev + curr} ,0)]; 
     } 
    } 
})(); 

後,我重新開始了Riak 。

下面是相關的Java代碼:

MapReduceBuilder builder = new MapReduceBuilder(new RiakClient("localhost")) 
    .setBucket("goog") 
    .map(JavascriptFunction.named("NS.mapHighValues"), false) 
    .reduce(JavascriptFunction.named("NS.reduceSumHighValues"), true); 
MapReduceResponseSource response = builder.submit(); 

有誰看到我的錯誤?

乾杯

ApeHanger

回答

1

看起來額外 '}' 之後,如 '返回[data.High];'

相關問題