我不确定是否可能。 我需要在nodeJS包中使用我的ReQL中的t分布。代码是这样的:
Query.map(function(doc){
return {
'DesScore': r.do(doc('MXt'),
doc('MXdf'),
r.js('(function(v,df){
var distributions = require("distributions.js");
var studentt = distributions.Studentt(df);
return studentt.inv(-1.*Math.abs(v))*2.*100.;}) '))
};
})
但是我得到了
Unhandled rejection ReqlQueryLogicError: ReferenceError: require is not defined in:
如何在ReQL js解释器中加载包?
提前感谢您的帮助。
答案 0 :(得分:0)
您无法在require
中使用r.js
因为它是JavaScript v8,而不是NodeJS。 require
来自NodeJS API,它不是标准JavaScript。在JavaScript客户端,人们使用browserify(或朋友)来实现此目的。因此,要使用require
,您必须在r.js
内部为require实现一个垫片,这也可能会将其它依赖项拉出来......
除此之外,您还必须以某种方式将依赖关系分发给RethinkDB服务器本身以使其工作。
所有这些都是一团糟。所以可能试图找到另一种解决方案。
将r.js
视为最后一种做法,尽可能尝试使用本机ReQL,如文档所述:
https://www.rethinkdb.com/api/javascript/js/
使用forEeach
,do
,branch
之类的控制结构,我认为你可以用它做很多事情。