Thanks for the reply, Ryan. I don't think the code is doing registering of 
callbacks but I will check again.  You are right, the extra wrapping of the 
Closure doesn't affect the behavior in any way, I just had it to avoid any 
issues related to scoping of the variables. If I remove the Closure the 
behavior is still the same. 

On Friday, June 17, 2016 at 9:30:36 PM UTC+1, Ryan Graham wrote:
>
> I don't see anything obvious, but these are the questions I would be 
> asking myself while investigating.
>
> Is "someClass.someFunction" taking a single use call callback? Or does the 
> first call to it register the callback somewhere and then reuse it for 
> future results?
>
> Your extra closure wrapping doesn't appear to be necessary, but it 
> shouldn't be causing any problems. Does the behavior change if you remove 
> it?
>
> Are you using a transpiler, or is this code run as-is?
>
> ~Ryan
>
> On Fri, Jun 17, 2016, 7:28 AM Ram Mulage <them...@gmail.com <javascript:>> 
> wrote:
>
>> Hi All,
>>
>> I am fairly new to the Node.JS and Javascript for that matter. Something 
>> strange going on in the below code
>>
>> The below page/code is requested by two different clients. Its all good 
>> for the first request as it logs correct IP of the requested client 
>> correctly every where.
>> but for the second request, the IP address(reqHostIp) is correct outside 
>> the CLOSURE but inside the CLOSURE BLOCK the value of the IP address is 
>> always of the first request's 
>>
>> I am suspecting this is to do with variable scoping or something of that 
>> sort or is it something else? Do you find anything obviously wrong in the 
>> code
>>
>>
>> router.get('/', function(req, res)
>> {
>> utils.dump("viewer::get - " + __filename);
>> //var reqHostIp = req.connection.remoteAddress || 
>> req.headers['x-forwarded-for'];
>> dbutils.fetchSomeDetals(function(config)
>> {
>> //Some code
>> //Some code
>> res.render('viewer',
>> {
>> //Rendering code
>> });
>> //let reqHostIp = req.ip;
>> var reqHostIp = req.connection.remoteAddress || 
>> req.headers['x-forwarded-for'];
>> utils.dump("reqHostIp: " + reqHostIp); //Correct IP logged
>> //***********CLOSURE***********
>>
>> (function(reqHostIp) 
>> {
>> someClass.someFunction(id, ip, metric, function(err, file_name)
>> {
>> if (err)
>> {
>> utils.dump("viewer::get - comms error: " + err + ", failed");
>> return;
>> }
>> let src = '/tmp/' + file_name;
>> utils.dump("reqHostIp: " + reqHostIp); // Wrong! Always displays the 
>> previous request's IP 
>> });
>> })( reqHostIp);
>>
>> //**************END CLOSURE*******************
>>
>> utils.dump("reqHostIp: " + reqHostIp); // Correct IP logged 
>> });
>> });
>>
>>
>> TIA
>>
>>
>> -- 
>> Job board: http://jobs.nodejs.org/
>> New group rules: 
>> https://gist.github.com/othiym23/9886289#file-moderation-policy-md
>> Old group rules: 
>> https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
>> --- 
>> You received this message because you are subscribed to the Google Groups 
>> "nodejs" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to nodejs+un...@googlegroups.com <javascript:>.
>> To post to this group, send email to nod...@googlegroups.com 
>> <javascript:>.
>> To view this discussion on the web visit 
>> https://groups.google.com/d/msgid/nodejs/2154584f-db49-48dc-a07b-e1378fd27f07%40googlegroups.com
>>  
>> <https://groups.google.com/d/msgid/nodejs/2154584f-db49-48dc-a07b-e1378fd27f07%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>> For more options, visit https://groups.google.com/d/optout.
>>
> -- 
>
> ~Ryan
>

-- 
Job board: http://jobs.nodejs.org/
New group rules: 
https://gist.github.com/othiym23/9886289#file-moderation-policy-md
Old group rules: 
https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
--- 
You received this message because you are subscribed to the Google Groups 
"nodejs" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to nodejs+unsubscr...@googlegroups.com.
To post to this group, send email to nodejs@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/nodejs/351ceb43-7b87-4686-99f0-74ba5de480d3%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to