我是 NodeJS 新手,现在我正在编写一个连接到外部 api 的小型服务。 该 api 有多种类型的对象,每个对象都有多种类型的函数。 我希望我的服务能够查询这个 api,但我想要的是每个查询都将在它自己的 json 文件中定义,因此为了将来的使用,人们可以添加/删除/更改这些查询。
json 文件示例:
{
"object": "foo",
"function": "bar",
"params": {
"x": "1",
"y": "2"
}
}
对象是'foo',是'bar',参数将作为整个json对象传递,所以我并不关心这部分。
如何创建对象“foo”,然后调用函数“bar”?
最佳答案
如果我理解事情...假设您像这样加载查询值...(假设可能需要进行微小的更改才能使其工作,或者使用另一种方法将文件内容作为字符串加载然后解析它等等......)
var fileJSON = require('./test.json');
var meta = JSON.parse(fileJSON);
...然后假设“foo”对象是当前方法上下文中的一个字段(即 this)...(这甚至可能不正确)你“可能”会做一些像这样的时髦的事情...
this[meta.object][meta.function](meta.params);
即从上下文中获取“foo”对象,从该对象中获取“function”函数,我们将其称为将参数作为对象传递,如您所提到的(我不确定您是否需要这个)
警告: - 我不确定“foo”作为当前对象(this)上的字段是否正确,但我确信您可以对此进行调整...您只需要更改this无论对象是什么,在字段中具有“foo”对象或类似的东西,即构造“foo”的实例......不知道事物是如何构造的,这是我想我可以给你的最好的例子。 - 我不确定 NodeJS (v8) 是否会因 .object 和 .function 而窒息......你可能不得不像这样
this[meta["object"]][meta["function"]](meta.params);
- 这尚未经过测试,我没有时间进行测试,但我希望在有限的时间内它至少可以对您有所帮助。如果没有那就没关系。希望有帮助!
关于javascript - Nodejs中的动态函数调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20784769/