Nodejs中被 require 的模块是如何能够调用到主模块中定义的变量的

发布于 1周前 作者 bupafengyu 来自 nodejs/Nestjs

Nodejs中被 require 的模块是如何能够调用到主模块中定义的变量的

module.exports = (pwd, data, ext = null) => {
// 生成一个随机变量名
let randomID;
if (ext.opts.otherConf[‘use-random-variable’] === 1) {
randomID = antSword.utils.RandomChoice(antSword[‘RANDOMWORDS’]);
} else {
randomID = ${antSword['utils'].RandomLowercase()}${Math.random().toString(16).substr(2)};
}
data[randomID] = Buffer
.from(data[’’])
.toString(‘base64’);
data[pwd] = @eval(@base64_decode($_POST['${randomID}']));;
delete data[’’];
return data;
}

该代码片段来自蚁剑.

  1. 其中 antSword 是定义于 app.entry.js 中的一个常量
  2. 在某些过程中,上面的代码片段会被动态 require.

我尝试写了一个 test.js,在其中定义 antSword 常量
然后再动态调用上面的代码,但是它会抛出 ReferenceError: antSword is not defined 异常


回到顶部