MagicMirror² v2.4.1 is available! For more information about this release, check out this topic.
Please read the release notes carefully since this update requires adjustments to your Raspberry Pi configuration!

How to pass extra variable to a Https Get Request



  • Hello everyone,

    I’m pretty new to NodeJS, but I’m working on a module for the Home automation JEEDOM.
    I’m stuck at being able to do a simple GET and having the context during async GET response in order to know from where my request came from

    var req = https.get("https://JEEDOMURL/core/api/jeeApi.php?apikey=...&type=cmd&id=127");
    req.idx = "127";
    req.on("response", function(res){
    	res.on('data', (d) => {		
    	console.log("DEBUG : " + req.idx +" / "+ typeof (d));
    	console.log("DEBUG : " + req.idx +" / "+ d);
    	})
    });
    
    var req = https.get("https://JEEDOMURL/core/api/jeeApi.php?apikey=...&type=cmd&id=695");
    req.idx = "695";
    req.on("response", function(res){
    	res.on('data', (d) => {		
    	console.log("DEBUG : " + req.idx +" / "+ typeof (d));
    	console.log("DEBUG : " + req.idx +" / "+ d);
    	})
    });
    

    With no surprise I’m getting
    DEBUG : 695 / object
    DEBUG : 695 / 5515
    DEBUG : 695 / object
    DEBUG : 695 / 19.8

    instead of getting
    DEBUG : 695 / object
    DEBUG : 127 / 5515
    DEBUG : 695 / object
    DEBUG : 695 / 19.8

    I know that is expected by JS async guru, but How can I explicitly pass a variable and getting my http get DATA synchronize.

    I’ve read a lot of module code, and unfortunately for me JEEDOM is not giving me any context information in the GET answer
    https://JEEDOMURL/core/api/jeeApi.php?apikey=…&type=cmd&id=127" is only responding 5515
    and https://JEEDOMURL/core/api/jeeApi.php?apikey=…&type=cmd&id=695" is responding 19.8

    Any help would be appreciate ?

    Thanks in advance for your time.
    I’m really stuck, and I don’t want to parse the URL to get back my ID.