簡體   English   中英

從nodejs腳本內部解析nodejs

[英]parsing nodejs from inside of a nodejs script

是否可以解析一個節點js文件並從另一個節點js文件內部運行部分代碼?

我有一個node.js文件,我正在嘗試從另一個node.js腳本內部進行解析。 我不控制文件的內容,但是它是有效的node.js,並且在代碼內部始終具有一個名為getParameterDefinitions的函數。

這是我要解析的文件: https : //github.com/jscad/OpenJSCAD.org/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構造函數-參見此處 然后執行以下操作:

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腳本的最外層范圍中聲明的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM