module.exports内联函数变量未定义

时间:2014-07-13 11:16:55

标签: javascript module inline

我的小项目和学习javascript正在顺利进行(很大程度上要归功于这里的人们)

我正在努力使用module.exports。我相信这个问题是因为我试图得到的变量都隐藏在这里的内联函数中:

var login = require('./myAirLogin')
var http = require('http');
var parseString = require ('xml2js').parseString;
var options = {
   hostname: '192.168.1.200',
   port: 80,
   path: '/getSystemData',
   method: 'GET'
};

//Get the system variables from MyAir

var req = http.request(options, function(res) {

    res.setEncoding('utf8');
    res.on('data', function (systemdata) {
parseString(systemdata,{explicitArray:false,trim:true,ignoreAttrs:true},//childkey:9},//explicitArray:false},//explicitChildren:false}, 
            function (err, sysdata) {
           var myairActualTemp= Number(sysdata["iZS10.3"].system.unitcontrol.centralActualTemp);
           var myairAirconOnOff= (sysdata["iZS10.3"].system.unitcontrol.airconOnOff);
           var myairFanSpeed= Number(sysdata["iZS10.3"].system.unitcontrol.fanSpeed);
           var myairMode= (sysdata["iZS10.3"].system.unitcontrol.mode);
           var myairDesiredTemp= Number(sysdata["iZS10.3"].system.unitcontrol.centralDesiredTemp);
           var myairNumberOfZones= Number(sysdata["iZS10.3"].system.unitcontrol.numberOfZones);
           var myairMaxUserTemp= Number(sysdata["iZS10.3"].system.unitcontrol.maxUserTemp);
           var myairMinUserTemp= Number(sysdata["iZS10.3"].system.unitcontrol.minUserTemp);
           var myairErrorCode= (sysdata["iZS10.3"].system.unitcontrol.airConErrorCode);
       });
    });

});

req.on('error', function(e) {
    console.log('problem with request: ' + e.message);
});
req.end();

如果我引入一个变量,即

module.exports.zones=8;

在初始块中,我可以从外部文件访问它们。

var sysdata=require('./myAirGetSysData');
console.log(sysdata.myairNumberOfZones)
console.log(sysdata.zones)

但是无法调用myairNumberOfZones。 我已经尝试用各种点的导出包装systemdata和系统函数,并使用我在这里可以找到的所有语法,但显然缺少一些东西。

1 个答案:

答案 0 :(得分:0)

你可以把module.exports = {     getZones:getZones };

为区域制作一个getter函数