0

这听起来很奇怪,但我希望特定目录中的所有模块只能从 node_modules 中获取资源,而不能从应用程序的任何其他部分获取资源。

在特定目录中:

  • require('fs')- 应该管用
  • require('../../something')-- 拒绝
  • require('./another')-- 拒绝

在 Node 中,这样的事情远程可能吗?

4

1 回答 1

0

您可以制作一个像 require-proxy 一样的模块:

module.exports.require2 = function() {
    if (arguments[0][0] !== '.') {
        return require.apply(this, arguments);
    } else {
        throw new Error('Can\'t require relative modules');
    }
}

当然,这将由开发人员选择加入:

var require2 = require('require2');
var fs = require2('fs'); //everything's good
var fss = require2('./fss'); //throws an error

有点类似于 thlorenz 的proxyquire的想法。

于 2013-09-24T18:57:33.507 回答