2016-08-07 8 views
0

Jungs Ich versuche, MongoDB-Datensatz in meiner .EJS-Datei zu rendern, jedoch console.log die Variable vor dem Ende meiner Route und ich bekomme den erwarteten Wert, jedoch wenn undefiniert in den .ejsÜbergabe von Params an nodejs ejs Vorlage

unter dem Code-Datei:

router.get("/new",function(req,res){ 
    var selectedMake; 
    console.log("Welcome to new make route!"); 
    Make.find({},function(err,result){ 
     if(err){ 
      console.log("an error occured while fetching the data"); 
     }else{ 
      if(req.query.id){ 
       Make.findById(req.query.id,function(err,foundMake){ 
        console.log("found the query string"); 
        selectedMake = foundMake; 
        console.log(selectedMake); // renders expected value when passing valid ID in the query string 
       }) 
      } 
      res.render("vehicles/newvehiclemake",{selectedMake: selectedMake, makes:result,modelId: req.query.id});   
     } 
    }) 

}); 

und hier ist der .ejs Auszug, wo die Variable selectedMake verwendet wird:

<% if (!typeof selectedMake == undefined) { %> 
       <% selectedMake.models.forEach(function(model){ %> 
       <tr><td><%= model.name %></td></tr> 
       <% }) %> 
       <% }else { %> 
       <tr><td>No Models available for the selected Make</td></tr> 
       <% } %> 

schätzen Sie Ihre Eingabe und dank im advanc e.

Antwort

0

typeof auf jede Variable gibt eine Zeichenfolge, so dass Sie für 'undefined' in Ihrem ejs

<% if (typeof selectedMake !== 'undefined') { %> 
+0

Sie sollten andere Benutzer in Ihren Antworten nicht herausrufen. Wenn Sie einen anderen Benutzer kritisieren möchten, sollten Sie unter dem Beitrag einen Kommentar hinzufügen. – FrankerZ

0

Ich bin mir nicht sicher, aber Sie machen Fehler in der ersten Zeile in Ihrer .EJS-Datei. Versuchen Sie folgendes:

<% if (typeof selectedMake !== 'undefined') { %> 
+0

zu überprüfen, ob 'selectedMake' nicht definiert ist, wird der Code in der zweiten Methode zum Absturz bringen. –

+0

Oh, sicher, du hast Recht. Danke –

Verwandte Themen