最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

从nodejs脚本内部解析nodejs

运维笔记admin9浏览0评论

从nodejs脚本内部解析nodejs

从nodejs脚本内部解析nodejs

是否可以解析节点js文件并从另一个节点js文件内部运行部分代码?

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

这是我要解析的文件:/blob/master/examples/gear.jscad

具体来说,我希望将getParameterDefinitions返回的JSON数组作为我代码中的变量。

这是我目前的代码:

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?

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

回答如下:

有些人可能会建议使用eval。但是有一种稍微清洁的方式:Function构造函数 - 请参阅here。然后这样做:

const getGetParameterDefinitions = new Function(src + ";\nreturn getParameterDefinitions;");
const getParameterDefinitions = getGetParameterDefinitions();
const params = getParameterDefinitions();

或者这个:

const getParameterDefinitions = new Function(src + ";\nreturn getParameterDefinitions();");
const params = getParameterDefinitions();

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

这仍然是一个坏主意 - 除非你相信编写代码的人,否则不要这样做。

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

与本文相关的文章

发布评论

评论列表(0)

  1. 暂无评论