getKvmIndex.js
var kvmIndex=[],
exports.kvmIndex = kvmIndex;
exports.getSNMP = function (callback) {
async.each(switchIps, function(switchIp, callback1) {
goGo(switchIp, callback1);
}, function(err) {
callback();
})
};
match.js
var app1 = require("./app.js");
var kvmIndex;
exports.kvmIndex = kvmIndex;
...
exports.matchAll = function(callback) {
async.series([
function(callback) {
kvmIndex = app1.kvmIndex;
decToHex(callback);
},
function(callback){
matchSt('getPortToSt2', callback);
},
function(callback){
console.log(kvmIndex); //Here it defined! Works good.
callback()
}
])
callback();
}
app.js
var kvmSNMP = require('./getKvmIndex')
, match = require('./match')
, async = require('async')
, kvmIndex = [];
...
async.series([
function(callback) {
kvmSNMP.getSNMP(callback);
},
function(callback) {
exports.kvmIndex = kvmSNMP.kvmIndex;
callback();
},
function(callback) {
match.matchAll(callback);
},
function (callback) {
kvmIndex = match.kvmIndex;
callback();
},
function (callback) {
console.log(match.kvmIndex); //Doesnt work(
callback();
}
])
我在做什么:
在 getKvmIndex.js 中,它可以正常工作,但在 match.js 中没有。 有人能帮助我吗?
答案 0 :(得分:0)
您需要在一个模块(文件)中定义kvmIndex
,仅在一个模块中定义一个。它就是那个模块,像你一样添加exports
。其他模块(文件)需要require
定义kvmIndex
的模块,并通过访问myModule.kvmIndex
来使用它。
注意:
1)从getKvmIndex()
导出getKvmIndex.js
,而不是直接导出变量kvmIndex
会更好。
2)你可能在match.js
中有一个错误 - 立即调用回调。您是否想要将callback
和第二个参数传递给async.series()
?