nodejs将对象导出到特定程序

时间:2019-03-19 10:00:29

标签: node.js export

我正在编写一个nodejs程序,我要在其中导出特定程序的对象,同时确保其他程序无法访问该对象。

有一种方法可以直接导出到nodejs中的特定程序?

我的问题的示例:

这是一个名为a.js的文件:

let firstVar = 100;
let secondVar = 200;

module.exports = {firstVar};

现在,每个将使用require('a.js')的js文件都可以访问firstVar。 我想创建一个名为b.js的文件,该文件也可以访问secondVar。 如何确保仅将secondVar导出到b.js,同时确保其他所有js文件都无法访问它。

之所以要这样做,是因为我想通过创建一个测试文件来测试我的项目,该文件显然需要一个我确实想要导出到其余js文件的特定变量。

2 个答案:

答案 0 :(得分:0)

(function(){let firstVar = 100; //将对a.js专有)}()); let secondVar = 200; module.exports = {firstVar};

答案 1 :(得分:0)

正如其他人提到的那样,这是一件很奇怪的事情,因此,您可能只应该在非常有限的情况下才要做。也就是说,可以通过查看require模块的文件名来实现:

if (module.parent && module.parent.filename.match(/some_file\.js$/)) {
    module.exports.yourSelectivelyExportedVariable = 'some value';
}
如果文件作为脚本运行,

module.parent为null,否则将被设置为描述该模块的对象,否则该模块将来自该对象。有关更多信息,请参见here