在nodejs中调用dynamic函数

我是nodeJS的新手,现在我正在写一个连接到外部API的小型服务。 这个API有几种types的对象,每个对象有几种types的function。 我希望我的服务来查询这个api,但我想要的是,这个查询将被定义在它自己的json文件中,所以为了将来的使用,人们可以添加/删除/更改这些查询。

一个json文件的例子:

{ "object": "foo", "function": "bar", "params": { "x": "1", "y": "2" } } 

对象是'foo','bar',而params会作为一个整体json对象传递,所以我并不在意这部分。

我如何创build对象'foo',然后调用函数'bar'?

如果我理解的东西…说你加载这样的查询值…(假设可能做一些小的改变,使其工作,或使用另一种方法来加载文件内容作为一个string,然后parsing它等。 …)

 var fileJSON = require('./test.json'); var meta = JSON.parse(fileJSON); 

然后假设“foo”对象是当前方法上下文的一个字段(即这个)…(这可能不是正确的),你可能会做这样的事情。

 this[meta.object][meta.function](meta.params); 

即将“foo”对象从上下文中取出,从该对象中获取“函数”函数,然后我们将其称为传递参数,如同您提到的那样(您是否需要这个我不确定)

警告: – 我不知道当前对象(this)上的“foo”是否是正确的,但我相信你可以调整这个…你只需要改变这个对象是什么在领域或类似的东西有“富”对象,即构build“富”的实例…不知道如何构造这是我可以给你的最好的例子。 – 我不确定nodejs(v8)是否会阻塞.object和.function …你可能不得不这样做

 this[meta["object"]][meta["function"]](meta.params); 
  • 这是没有经过testing的,我没有时间去testing,但是我希望在这么短的时间内,至less可以帮助你。 如果不是那么没关系。 希望能帮助到你!