nodejs中的动态函数调用



我是nodeJS的新手,现在我正在编写一个连接到外部api的小型服务。这个api有几种类型的对象,对于每个对象都有多种类型的函数。我希望我的服务查询这个api,但我希望每个查询都在它自己的json文件中定义,以便将来使用,人们可以添加/删除/更改这些查询。

json文件的示例:

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

对象是"foo",是"bar",params将作为一个完整的json对象传递,所以我并不真正关心这部分。

如何创建对象"foo",然后调用函数"bar"?

如果我了解一些事情。。。假设您像这样加载查询值。。。(假设可能会进行一些小的更改,或者使用另一种方法将文件内容加载为字符串,然后对其进行解析等……)

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

那么假设"foo"对象是当前方法上下文中的一个字段(即this)。。。(这甚至可能不正确)你"可能"会做这样的时髦事。。。

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

即,将"foo"对象从上下文中移除,将"function"函数从该对象中移除,我们将其称为作为对象传入params(我不确定是否需要)

警告:-我不确定作为当前对象(this)上的字段的"foo"是否正确,但我相信您可以对此进行调整。。。您只需要将this更改为在字段中具有"foo"对象的对象或类似对象,即构造"foo"的实例。。。不知道事物的结构这是我能给你的最好的例子。-我不确定nodejs(v8)是否会被.object和.function阻塞…你可能不得不这样做,而不是

this[meta["object"]][meta["function"]](meta.params); 
  • 这是未经测试的,我没有时间测试,但我希望在我拥有的这段时间里,它至少会对你有所帮助。如果没有,那也没关系。希望它能有所帮助

最新更新