2016-08-04 22 views
0

Ich versucheZuweisung Variablen nur in Javascript nicht definiert, wenn

localhost in diesem Format zwei Stichworte von einer URL zu extrahieren: 3000/„Charakternamen“/„Bereichsname“

wo ich exctract will „Charakter "und" realmname "und weisen sie Variablen zu.

Ich benutze:

var charactername = req.url.split("/")[1]; 
console.log(charactername); 
var realmname = req.url.split("/")[2]; 
console.log(realmname); 

Alles funktioniert gut und schön auf den ersten, aber dann scheint es eine Anfrage für eine „favicon.ico“ gemacht wird, und meine Variablen werden nicht definiert, da es eine neue Anforderung url ist . Ich habe versucht zu lösen dies durch den Code-Schnipsel in eine Verkapselung if-Anweisung wie folgt aus:

if(req.url !== '/favicon.ico'){ 
var charactername = req.url.split("/")[1]; 
console.log(charactername); 
var realmname = req.url.split("/")[2]; 
console.log(realmname); 
} 

Die console.log Ausgänge sagt mir die Variablen auf die richtigen Werte eingestellt werden, heißt es nie es nicht definiert ist, so scheint es zu funktionieren .. wenn jedoch der nächste Teil des Codes ausgeführt wird:

if(charactername.length > 0){ 
      res.writeHead(200, {'Content-Type': 'text/html'}); 
      renderer.view("header", {}, res); 

      //get json from battle.net 
      var characterProfile = new Profile(charactername, realmname); 

      //on "end" 
      characterProfile.on("end", function(profileJSON){ 
       //Show profile 
       //Store values we need 
       var values = { 
        avatarURL: profileJSON.thumbnail, 
        charactername: profileJSON.name, 
        realmname: profileJSON.realm, 
        level: profileJSON.level 
       } 
       //Simple response 
       renderer.view("profile", values, res); 
       renderer.view("footer", {}, res); 
       res.end(); 
      }); 

ich einen Fehler sagen, kann nicht Eigentum Länge von undefined lesen. Es scheint also, dass die Variablen irgendwie undefiniert werden. Jeder hat eine Ahnung, wie man das löst?

Antwort

0
if(x === undefined){ 
    //do something 
} 

Diese überprüft, ob die Variable nicht definiert ist, aber ich schlage vor, Sie überprüfen, was in erster Linie den Fehler verursacht.

0

if (Charakter & & charactername.length> 0) {

...