避免在nodejs模块中重复require语句

目前,我正在开发Express应用程序,并创build了几个服务,这些服务是从一个index.js文件调用的模块:

 "use strict"; const MAX_TEXT_LENGTH = 100; var mysql = require('mysql') , _ = require('underscore') , Q = require('q') , moment = require('moment') , env = process.env.NODE_ENV || 'development' module.exports.module1 = require('./module1'); module.exports.module2 = require('./module2'); module.exports.moduleN = require('./moduleN'); 

由于这个结构,我现在可以调用一次var Services = require('./services')并且我可以访问所有的服务。

问题是在这个文件中使用的模块,常量和“全局”variables在模块中不可用,所以我必须多次调用它们。

我也试图把增值税命名为let但这是行不通的。

有没有什么办法可以在这个index.js文件中定义模块和variables,并在模块中使用它们?

谢谢!!!

在你的模块中,不是只返回一个简单的值,而是返回一个对象,其中每个键都是你想要导出的variables。 像这样的东西。

 var myModuule = { varIWantToExport: 1, methodIWantToExport: function() { return "Hello world!";} } module.exports = myModule; 

然后,当你需要在其他模块中,你可以做这样的事情:

 var myModule = require("./my-module"); var myMethod = myModule.methodIWantToExport var myVar = myModule.varIWantToExport; 

显然这只适用于你的模块。 如果你正试图使用​​一些模块中没有公开的variables/方法,也许你做错了什么。