简体   繁体   English

要求一个需要自己的模块

[英]Requiring a module that requires itself

I have an index.js file that looks a little bit like this: 我有一个index.js文件,看起来像这样:

exports.services = {
    service1: require("./service1"),
    service2: require("./service2"),
}

service2 actually needs to make use of service1 , though. service2实际上需要使用service1 However inside of the service2.js file if I do: 但是如果我在service2.js文件中执行以下操作:

var services = require("./").services

Then services will just be an empty object. 这样, services将只是一个空对象。 This makes some sense since service2 is not completely required yet. 这是有道理的,因为还没有完全需要service2 Is there any way to give service2 access to service without requiring it explicitly? 有什么方法可以使service2无需明确要求就可以访问service

Instead of doing it in an object literal all at once, you could do it by setting the properties separately. 您可以通过分别设置属性来做到这一点,而不是一次在对象文字中一次完成。 This way, when it encounters the circularity, it will already have loaded some of it: 这样,当遇到圆度时,它将已经加载了其中的一些:

exports.services = {};
exports.services.service1 = require("./service1");
exports.services.service2 = require("./service2");

Warning: untested 警告:未经测试

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

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