javascript - Nodejs中的动态函数调用

标签 javascript node.js

我是 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/

相关文章:

javascript - 关键帧 CSS 动画

javascript - 是否可以为 location.reload() 添加 JavaScript for/while 循环;

javascript - 使用 Jquery 进行注释

javascript - findOneAndUpdate Mongoose w/PUT REST API

javascript - 尝试在nodejs中自己验证JWT签名以了解JWT的内部工作原理,但解密的签名给出错误的值

javascript - D3 v4 .rangeBand() 等效项

javascript - 在Js中使用循环查找具有特定值的数据的索引

java - exec-maven-plugin 说不能运行指定的程序,即使它在 PATH 上

javascript - 如何使用 Cassandra 手动分页导航到上一页

javascript - NPM 从 package.json 安装依赖