简体   繁体   English

是否可以使用 nodejs/npm 启动具有不同权限的 js 文件?

[英]Is it possible to launch js files with different permissions using nodejs/npm?

I want to launch a js file in a js file with different permission.我想在具有不同权限的 js 文件中启动 js 文件。 Just like this:像这样:

main.js (which gets started) main.js (开始)


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

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

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

randomJSFile.js (which will be executed by main.js) 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

}

Does anyone know how to do something like that?有谁知道如何做这样的事情?

Based on a snippet from this question here you could possibly override the require function to check for the filename, something like this:根据此处问题的片段,您可能会覆盖需要 function 来检查文件名,如下所示:

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);
};

And then perform this override after you've already required the config in your main file, so you don't accidentally block yourself然后在您已经需要主文件中的配置后执行此覆盖,这样您就不会意外阻止自己

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM