【问题标题】:Run JavaScript from a TextArea从 TextArea 运行 JavaScript
【发布时间】:2017-03-01 22:43:01
【问题描述】:


我必须在 Node.js 中创建一个执行算法(在 js 中)并使用其结果创建图表的应用程序。
我的问题是我真的不知道如何在我的 textarea 中执行 JavaScript,我没有找到可以在 node.js 中运行 javascript 代码的插件。

谢谢

【问题讨论】:

  • 您到底想用 textarea 完成什么?您是否只是试图读取它具有的任何价值?

标签: javascript node.js forms algorithm


【解决方案1】:

您可以在大多数 JS 方言中使用 JSON.eval("some string of javascript"),它会运行里面的代码。在此处查看更多信息:

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/eval

很明显,这是针对学校的,但作为一般做法,不建议使用 JSON.eval(),因为它是运行任何人想要的任何代码的一个很好的攻击向量。但是,无论您在哪里插入它,它都可以在节点 JS 或浏览器的客户端中工作。只要它用于学习练习,它可能就是您所需要的,但不要去找工作并到处使用 .eval() 。

这是我在 developer.mozilla.org 上链接到的那个页面的警告的复制粘贴

不要不必要地使用 eval ! eval() 是一个危险的函数,它以调用者的权限执行它传递的代码。如果您使用可能受到恶意方影响的字符串运行 eval(),您最终可能会在具有网页/扩展程序权限的用户计算机上运行恶意代码。更重要的是,第三方代码可以看到调用 eval() 的范围,这可能导致类似Function 不易受到的攻击。

【讨论】:

  • 谢谢!我今天还和一个博士谈过,他告诉我也使用 eval。我向他详细解释了这个问题,他解释说我应该创建一个子进程以便控制执行(暂停、停止等)
【解决方案2】:

您可能会在这里混淆一​​些概念。 Node.js 是服务器端 javascript,而浏览器中的 textarea 是客户端 javascript。

要解决您当前的问题,您可以将算法放在客户端中,也可以在服务器端编写某种 REST 服务并从客户端调用该服务。

希望有帮助

【讨论】:

    【解决方案3】:

    我还发现https://nodejs.org/api/vm.html 非常完美!!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-24
      • 2019-02-22
      • 2011-03-10
      • 2020-05-28
      • 2013-12-30
      • 1970-01-01
      相关资源
      最近更新 更多