是否可以在运行时使用Node.js中的函数生成对象?

时间:2019-04-08 07:25:00

标签: javascript node.js

我编写了一个Node.js应用程序,该应用程序从另一个应用程序(服务器)获取有关服务器某些对象实例的信息。以树的形式显示的有关对象的信息,以及有关节点类型(方法或属性,方法args,节点ID等)的信息。

在Node.js中是否有可能在运行时生成一些对象(例如JSON但具有函数)来表示服务器对象实例以直接调用其方法?

或者基本上:可以在运行时在Node.js中使用可调用方法生成对象吗?

1 个答案:

答案 0 :(得分:1)

这是可能的。但是我猜您应该为此担心安全性。除了安全性之外,这是如何做到的。

const func = 'function(x) {console.log(x);}';

const callable = eval(func);
callable('Hello World');

因此,您以字符串形式接收该函数,并且可以通过使用eval作为代码执行将其转换为可调用函数,该代码在任何编程语言中都被认为是有害的。因此,基本上,向您发送代码的人可以对您的服务器执行任何操作,如果担心的话,应避免这种情况。