Javascript module.export=[]是错误的做法吗?
我有两个模块,它们都需要访问共享阵列。我通过一个模块来解决这个问题,该模块只包含以下内容: sharedArray.jsJavascript module.export=[]是错误的做法吗?,javascript,node.js,Javascript,Node.js,我有两个模块,它们都需要访问共享阵列。我通过一个模块来解决这个问题,该模块只包含以下内容: sharedArray.js module.exports = []; 在模块中,我是这样使用它的: 模块1.js var arr = require('./sharedArray'); function addSomething() { // Add something to arr } var arr = require('./sharedData').myData; functio
module.exports = [];
在模块中,我是这样使用它的:
模块1.js
var arr = require('./sharedArray');
function addSomething() {
// Add something to arr
}
var arr = require('./sharedData').myData;
function addSomething() {
// Add something to arr
}
module2.js
var arr = require('./sharedArray');
function doSomething() {
// Use arr for something
}
var arr = require('./sharedData').myData;
function addSomething() {
// Add something to arr
}
这是可行的,但感觉不对(无用的空模块),我错过了一些明显的东西
有没有更好的方法,或者这就是你解决问题的方法?这不是一个坏做法。这只是模块间共享数据的几个选项之一。用你现在的方式做这件事没有什么“错”
在node.js中的模块之间共享数据时,基本上有三种选择:
我个人可能会选择更具可扩展性的选项,这样您也可以在那里拥有其他共享项目: sharedData.js
module.exports = {
myData: [...],
myOtherData: [...]
};
模块1.js
var arr = require('./sharedArray');
function addSomething() {
// Add something to arr
}
var arr = require('./sharedData').myData;
function addSomething() {
// Add something to arr
}
module2.js
var arr = require('./sharedArray');
function doSomething() {
// Use arr for something
}
var arr = require('./sharedData').myData;
function addSomething() {
// Add something to arr
}
这只是Node.js使用的标准机制。怎么了?我更新了我的问题。基本上,仅仅为了这个目的,让一个文件和模块或多或少都是空的感觉很奇怪。我从未见过其他人这样做。我以前这样做是为了避免循环依赖。请务必清楚地命名您的模块,并/或留下一条注释,解释它用于哪些数据,可能还有一些数据消费/生产模块的示例。这样做没有错。好的,谢谢。我只想再次指出,该文件只不过是
module.exports=[]
。这不仅仅是一个例子。我想这就是我三思而后行的原因,也许它本身不应该是一个模块,因为它不包含任何初始数据。