我正在尝试构建一个节点js应用程序,我在其中调用rscript进行一些统计计算并返回一个包含8个元素的数组,然后我将其传递回nodejs,以便我们可以在ejs页面上显示这些元素。
我能成功地在本地主机上执行此操作一切正常,甚至rscript正在运行并返回输出,但是当我们尝试在ubuntu服务器上执行相同操作时,我们并未在终端上对任何console.log(out)进行检测(out是从rscript获取输出的变量)我们得到一个null。
我们以如图所示的相同方式在localhost和server中调用脚本。
`console.log(data);
var out = rscript(abc.R)
.data(data.xyz,data.abc)
.callSync();
console.log(out);`
在上面的代码中,我们在数据变量中获取了json,它在本地和服务器上也提供了日志。
我使用npm在nodejs中安装了所有需要的库,如rscirpt,并且已经在我的ubuntu服务器上安装了R和Rstudio,并且安装了运行rscript所需的所有库。
r脚本放在同一个文件夹中,我的index.js是所有ejs页面都存储在节点应用程序能够访问的其他文件夹中并显示它们。
您必须在其他位置部署R脚本,然后使用节点服务器文件中的API调用调用该R脚本。
可以用来在节点中将rscript称为API的服务之一是Algorithmia。您只需按照他们的指示将所有代码包装在函数中。一旦您创建了R项目,它就会显示为示例。