首页 > 解决方案 > 是否可以使用 nodejs/npm 启动具有不同权限的 js 文件?

问题描述

我想在具有不同权限的 js 文件中启动 js 文件。像这样:

main.js(开始)


config = JSON.parse(require("./config.json")) // <- should be possible

console.log(config.authkey) // <- should be possible

require("./randomJSFile.js").run()

randomJSFile.js(将由 main.js 执行)


exports.run = () => {

 let config = JSON.parse(require("./config.json") // <--- this should not be possible, only the main.js file should have access to the config.json file

 console.log(config.authkey) // should not be possible

}

有谁知道如何做这样的事情?

标签: javascriptnode.jsnpm

解决方案


根据此处问题的片段,您可能会覆盖 require 函数来检查文件名,如下所示:

const Module = require('module');
const originalRequire = Module.prototype.require;

Module.prototype.require = function() {
  if (!arguments.length || typeof arguments[0] !== 'string') return {};
  if (arguments[0].includes('config.json')) return {};
  return originalRequire.apply(this, arguments);
};

然后在您已经需要主文件中的配置后执行此覆盖,这样您就不会意外阻止自己


推荐阅读