通过节点在服务器上执行R代码

时间:2017-01-15 12:05:08

标签: javascript r node.js

我创建了一个网站,我可以将代码写入文本字段,我想将此代码发送到我的nodes.js服务器并调用安装在我的服务器上的R,并使其处理写入的R代码。

我遇到的问题是,如何在服务器上启动R并通过Javascript输入代码?

安全方面与此无关,因为它永远不会生效并始终保持本地主机。

有关如何解决此问题的任何想法?

1 个答案:

答案 0 :(得分:0)

如果使用R Web框架,则可以使用eval函数将文本框的内容作为代码运行。

显然,这是非常危险的,但是你说过你只想让它在本地运行。

您可以使用其他语言和exec函数来生成子进程。将代码写入文件,使用exec编译,然后使用exec函数运行。

在节点中,您可以使用子进程来实现此目的 https://nodejs.org/api/child_process.html

在PHP中,您可以将exec用于同一目的 http://php.net/manual/en/function.exec.php

所有这些选项都有相同的风险。

如果要在服务器上安全地执行R代码,可以实现RPC机制,一个简单的机制包括命令的名称和要传递的参数。这样,您可以有效地将允许执行的内容列入白名单,但这确实意味着您不能执行任意R代码。