[英]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.