我正在编写一个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文件的特定变量。
答案 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。