I'd really suggest to use jade with "self" option, this way you won't get confused where these variables are coming from.
03.02.2014, 14:51, "Anto" <[email protected]>:
--HiAlready 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# Jadeeach product in listProductsThanks !RegardsAnto2014-01-29 Anto <[email protected]>Hinode-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.Regars2014-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 ...ThanksRegardsAnto2014-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 viewIn 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@ajlopezOn Wed, Jan 29, 2014 at 7:39 AM, Anto <[email protected]> wrote:HelloIt 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). ThanksRegardsAnto2014/1/29 Anto <[email protected]>HelloIt 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 errorh4= errorelseh4= 'List of products'if productseach product in productsli.product(id=product.identifier, name=product.identifier)a(href='' + product.identifier, target='_blank')I'll see if it works and the result I will comment. ThanksRegardsAnto2014/1/29 Anto <[email protected]>hello RyanIf 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 !RegardsAnto2014/1/29 Ryan Schmidt <[email protected]>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.
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();
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.
> 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 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.
> 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
> });
>
> }
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.
--
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.
