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.

Reply via email to