Hi

Already solved.

This has been fixed by changing the name of the variable in Jade. Know if
Jade uses local, global variables or is a bug. I understand that to be a
template should be local but it seems that using global variables.

It's very strange, because if so, to enter another section, this variable
would refresh and would show other values, but once caused the fault always
showing the same data, a mixture of various data.

# Nodej

,listProducts: mongoProducts

# Jade
each product in listProducts

Thanks !

Regards
Anto


2014-01-29 Anto <[email protected]>

> Hi
>
> node-inspector died and not on the browser. If you run hard and routines
> as planned, but I could not see the products object with failure.
>
> Regars
>
>
> 2014-01-29 Anto <[email protected]>
>
> Yourselves know her some javascript parser? Because I'm debugger and
>> breadpoints jump on the rest of GET but not in this and I think there's
>> some bad code above or something. And I see it in 6k lines ...
>>
>> Thanks
>>
>> Regards
>> Anto
>>
>>
>> 2014-01-29 Angel Java Lopez <[email protected]>
>>
>> Can you show:
>>>
>>> - the retrieved document
>>> - the jade ouput (relevant HTML from your browser source)
>>>
>>> Can you add something "definitive" to Jade, template, like p= new Date()
>>> (I don't know if it is a valid Jade syntax). That is, a javascript
>>> expression returning the current date/time, not in the model, but in the
>>> view
>>>
>>> In this way, you will be more info about the result. It's not clear (in
>>> my English understanding) if you have "cached" result (the same result that
>>> one hour or one minute, or one second ago), or "mangled" (the result is not
>>> what you expected but make senses, or the result is garbage, not expected,
>>> non sense).
>>>
>>> Angel "Java" Lopez
>>> @ajlopez
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>> On Wed, Jan 29, 2014 at 7:39 AM, Anto <[email protected]> wrote:
>>>
>>>> Hello
>>>>
>>>> It has failed again despite all this, the variables have the right data
>>>> but once fault does not display properly. It's like jade take the cached
>>>> data from another object ( -> products: mongoProducts). Thanks
>>>>
>>>> Regards
>>>> Anto
>>>>
>>>>
>>>> 2014/1/29 Anto <[email protected]>
>>>>
>>>>> Hello
>>>>>
>>>>> It is possible that even use var to define the variable, may exist a
>>>>> bug and take it as a global and have several requests resulting into
>>>>> failure?
>>>>>
>>>>> I've also changed this part of the code being as follows:
>>>>>
>>>>>
>>>>> app.get('/brand/:identifier', function(req, res){
>>>>>
>>>>>     //var identifier = req.params.identifier.toLowerCase();
>>>>>     var term = req.params.identifier.toLowerCase();
>>>>>
>>>>>     brands.find({ active: true, 'brandName' : { $regex : new
>>>>> RegExp(term, "i")} }).populate({
>>>>>
>>>>>                               path: 'shop'
>>>>>
>>>>>                               ,select: 'name shop description'
>>>>>
>>>>>                           }).sort({dateAdded: 'desc'}).exec(function(err,
>>>>> mongoProducts) {
>>>>>         if(mongoProducts && mongoProducts.length) {
>>>>>
>>>>>             console.log('Data doc: ' + mongoProducts);
>>>>>
>>>>>             return res.render('brand_list', {
>>>>>                                                 shop:
>>>>> mongoProducts[0].shop.shop
>>>>>                                                 ,name:
>>>>> mongoProducts[0].shop.name
>>>>>                                                 ,description:
>>>>> mongoProducts[0].shop.description
>>>>>                                                 ,products:
>>>>> mongoProducts
>>>>>                                                 ,pageTitle:
>>>>> mongoProducts[0].shop.shop
>>>>>                                                 ,pageUrl: '
>>>>> http://backofficeserver.local/brand/' + term
>>>>>                             });
>>>>>
>>>>>         } else {
>>>>>
>>>>>             return res.render('brand_list', {
>>>>>                                                 shop:
>>>>> mongoProducts[0].shop.shop
>>>>>                                                 ,name:
>>>>> mongoProducts[0].shop.name
>>>>>                                                 ,description:
>>>>> mongoProducts[0].shop.description
>>>>>                                                 ,error: 'Not product´s
>>>>> found'
>>>>>                                                 ,pageTitle:
>>>>> mongoProducts[0].shop.shop
>>>>>                                 ,pageUrl: '
>>>>> http://backofficeserver.local/brand/' + term
>>>>>                                                  });
>>>>>
>>>>>         }
>>>>>     });
>>>>>
>>>>> });
>>>>>
>>>>> - Jade (resumed)
>>>>>
>>>>> if error
>>>>>    h4= error
>>>>> else
>>>>>   h4= 'List of products'
>>>>>   if products
>>>>>     each product in products
>>>>>       li.product(id=product.identifier, name=product.identifier)
>>>>>         a(href='/show/' + product.identifier, target='_blank')
>>>>>
>>>>> I'll see if it works and the result I will comment. Thanks
>>>>>
>>>>> Regards
>>>>> Anto
>>>>>
>>>>>
>>>>> 2014/1/29 Anto <[email protected]>
>>>>>
>>>>>> hello Ryan
>>>>>>
>>>>>> If I use var to declare variables, was in the transcript of this
>>>>>> message I delete it by mistake, by eliminating several console.log for 
>>>>>> you
>>>>>> they had the cleanest code. I´m sorry.
>>>>>>
>>>>>> Thanks !
>>>>>>
>>>>>> Regards
>>>>>> Anto
>>>>>>
>>>>>>
>>>>>> 2014/1/29 Ryan Schmidt <[email protected]>
>>>>>>
>>>>>>>
>>>>>>> On Jan 28, 2014, at 19:39, Anto <[email protected]> wrote:
>>>>>>>
>>>>>>> > The code is as follows:
>>>>>>> >
>>>>>>> > - Nodejs + Expressjs
>>>>>>> >
>>>>>>> > app.get('/brand/:identifier', function(req, res){
>>>>>>> >
>>>>>>> >     identifier = req.params.identifier.toLowerCase();
>>>>>>>
>>>>>>> Because you have not used "var" to declare it, "identifier" is a
>>>>>>> global variable. This is a problem. Check your other code for this 
>>>>>>> problem
>>>>>>> as well.
>>>>>>>
>>>>>>> >     brands.find({ active: true, 'brandName' : { $regex : new
>>>>>>> RegExp(identifier, "i")} }).populate({
>>>>>>> >
>>>>>>>                                   path: 'shop'
>>>>>>> >
>>>>>>>                                   ,select: 'name shop description'
>>>>>>> >
>>>>>>>                               }).sort({dateAdded:
>>>>>>> 'desc'}).exec(function(err, doc) {
>>>>>>>
>>>>>>> Here, you are firing off an asynchronous function (brands.find);
>>>>>>> when it is done, the anonymous function (function(err, doc){...}) will 
>>>>>>> be
>>>>>>> called with the result.
>>>>>>>
>>>>>>> >         if(doc && doc.length) {
>>>>>>> >
>>>>>>> >             console.log('Data doc: ' + doc);
>>>>>>> >
>>>>>>> >             return res.render('brand_list', {
>>>>>>> >                                                 shop:
>>>>>>> doc[0].shop.shop
>>>>>>> >                                                 ,name: doc[0].
>>>>>>> shop.name
>>>>>>> >                                                 ,description:
>>>>>>> doc[0].shop.description
>>>>>>> >                                                 ,products: doc
>>>>>>> >                                                 ,pageTitle:
>>>>>>> doc[0].shop.shop
>>>>>>> >                                                 ,pageUrl: '
>>>>>>> http://backofficeserver.local/brand/' + identifier
>>>>>>> >                                                           });
>>>>>>> >
>>>>>>> >         } else {
>>>>>>> >
>>>>>>> >             return res.render('listado_shop', {
>>>>>>> >                                                 shop:
>>>>>>> doc[0].shop.shop
>>>>>>> >                                                 ,name: doc[0].
>>>>>>> shop.name
>>>>>>> >                                                 ,description:
>>>>>>> doc[0].shop.description
>>>>>>> >                                                 ,error: 'Not
>>>>>>> product´s found'
>>>>>>> >                                                 ,pageTitle:
>>>>>>> doc[0].shop.shop
>>>>>>> >
>>>>>>> ,pageUrl: 'http://backofficeserver.local/brand/' + identifier
>>>>>>> >                                                 });
>>>>>>> >
>>>>>>> >         }
>>>>>>>
>>>>>>> Here you are rendering the jade template, using various values,
>>>>>>> including that global variable "identifier". But between the time that 
>>>>>>> this
>>>>>>> request started, and the time that the database returned the result and 
>>>>>>> the
>>>>>>> template was rendered, another request may have started and overwritten 
>>>>>>> the
>>>>>>> "identifier" variable with a different value.
>>>>>>>
>>>>>>> Use "var" to declare your local variables so that they stay local
>>>>>>> and don't pollute other requests.
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> --
>>>>>>> Job Board: http://jobs.nodejs.org/
>>>>>>> Posting guidelines:
>>>>>>> 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 post to this group, send email to [email protected]
>>>>>>> To unsubscribe from this group, send email to
>>>>>>> [email protected]
>>>>>>> For more options, visit this group at
>>>>>>> http://groups.google.com/group/nodejs?hl=en?hl=en
>>>>>>>
>>>>>>> ---
>>>>>>> You received this message because you are subscribed to a topic in
>>>>>>> the Google Groups "nodejs" group.
>>>>>>> To unsubscribe from this topic, visit
>>>>>>> https://groups.google.com/d/topic/nodejs/2SxmvchhHaM/unsubscribe.
>>>>>>> To unsubscribe from this group and all its topics, send an email to
>>>>>>> [email protected].
>>>>>>> For more options, visit https://groups.google.com/groups/opt_out.
>>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>  --
>>>> --
>>>> Job Board: http://jobs.nodejs.org/
>>>> Posting guidelines:
>>>> 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 post to this group, send email to [email protected]
>>>> To unsubscribe from this group, send email to
>>>> [email protected]
>>>> For more options, visit this group at
>>>> http://groups.google.com/group/nodejs?hl=en?hl=en
>>>>
>>>> ---
>>>> 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 [email protected].
>>>>
>>>> For more options, visit https://groups.google.com/groups/opt_out.
>>>>
>>>
>>>  --
>>> --
>>> Job Board: http://jobs.nodejs.org/
>>> Posting guidelines:
>>> 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 post to this group, send email to [email protected]
>>> To unsubscribe from this group, send email to
>>> [email protected]
>>> For more options, visit this group at
>>> http://groups.google.com/group/nodejs?hl=en?hl=en
>>>
>>> ---
>>> You received this message because you are subscribed to a topic in the
>>> Google Groups "nodejs" group.
>>> To unsubscribe from this topic, visit
>>> https://groups.google.com/d/topic/nodejs/2SxmvchhHaM/unsubscribe.
>>> To unsubscribe from this group and all its topics, send an email to
>>> [email protected].
>>> For more options, visit https://groups.google.com/groups/opt_out.
>>>
>>
>>
>

-- 
-- 
Job Board: http://jobs.nodejs.org/
Posting guidelines: 
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 post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/nodejs?hl=en?hl=en

--- 
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 [email protected].
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to