首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从nodejs脚本内部解析nodejs

从nodejs脚本内部解析nodejs
EN

Stack Overflow用户
提问于 2017-12-22 06:23:35
回答 1查看 144关注 0票数 0

有没有可能解析一个节点js文件并从另一个节点js文件内部运行部分代码?

我有一个试图从另一个node.js脚本中解析的node.js文件。我不能控制文件的内容,但它是有效的node.js,并且在代码内部总是有一个名为getParameterDefinitions的函数

下面是我正在尝试解析的文件:https://github.com/jscad/OpenJSCAD.org/blob/master/examples/gear.jscad

具体地说,我希望从getParameterDefinitions返回的JSON数组在我的代码中作为一个变量。

下面是我目前掌握的代码:

代码语言:javascript
复制
const fs = require('fs')
inputFile = 'gear.jscad'
let src = fs.readFileSync(inputFile, 'UTF8')
console.log(src)
params = Parse(src,'getParameterDefinitions') //how to write this line?

如何让node解析javascript并运行函数将结果返回到params变量。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-12-22 07:25:37

有些人可能会建议使用eval。但是还有一种更简洁的方法:Function构造函数--参见here。然后执行以下操作:

代码语言:javascript
复制
const getGetParameterDefinitions = new Function(src + ";\nreturn getParameterDefinitions;");
const getParameterDefinitions = getGetParameterDefinitions();
const params = getParameterDefinitions();

或者这样:

代码语言:javascript
复制
const getParameterDefinitions = new Function(src + ";\nreturn getParameterDefinitions();");
const params = getParameterDefinitions();

(注意:在这两种情况下,Function的参数略有不同。)

不过,这仍然是一个糟糕的想法--除非你信任编写代码的人,否则不要这么做。

另外,我假设在src脚本的最外层范围中声明了函数getParameterDefinitions

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47933517

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档