2016-06-27 2 views
0

私はDiscordのボットを作成していて、NASA APIでいくつかのことをしようとしています。しかし、1枚の画像ごとに著作権は存在しないので、それが起こると「未定義」が何か他のものに置き換えられてほしいです。そうすることは可能でしょうか?返される未定義の値を置き換える方法は? (RequestJS)

はここに私のコードです:あなたの助けを

if (nasaPic.copyright == undefined) { 
        nasaPic.copyright.replace("undefined", "test"); 
        bot.sendMessage(msg, msgArray); } 

ありがとう:ここ

"nasapic": { 
     name: "nasapic", 
     help: "Utilisez cette commande pour afficher l'image du jour sur http:///apod.nasa.gov/", 
     process: function (bot, msg, suffix) { 
      request("https://api.nasa.gov/planetary/apod?date="+suffix+"&hd=True&api_key=NNKOjkoul8n1CH18TWA9gwngW1s1SmjESPjNoUFo", function (error, response, body) { 
      if (!error) { 
       var nasaPic = JSON.parse(body); 
       var msgArray = []; 
       msgArray.push("Photographie du " + nasaPic.date + " prise par " + nasaPic.copyright + "\n"); 
       msgArray.push("Titre : **" + nasaPic.title + "**\n"); 
       console.log(msg.author.name + " " + "a utilisé la commande /nasapic"); 
       msgArray.push(nasaPic.url); 
       if (nasaPic.code == 400) { 
        bot.sendMessage(msg.channel, ":x: Une erreur est survenue. Rappel de la syntaxe : **YYYY-MM-DD**"); } 
       if (nasaPic.copyright == undefined) { 
        nasaPic.copyright.replace("undefined", "test"); 
        bot.sendMessage(msg, msgArray); } 
       else bot.sendMessage(msg, msgArray); 
      } 
     }); 
    } 
}, 

は問題があるの2行があります。

答えて

1

それはあなたが

if (typeof(nasaPic.copyright) == 'undefined') { 
    nasaPic.copyright = 'test'; 
} 
+0

Hey!お返事をありがとうございます。しかし、私がこれを使用すると、SyntaxError:JSONの位置0に予期しないトークンuがある エラーと意図ログのペーストビンは次のとおりです。http://pastebin.com/CA0Sxrv8 – user10369

+0

"nasaPic" - データについては、https://jsfiddle.net/sts8djos/ –

1

を探しているようだ最も簡単な方法はこれです:

if (!nasaPic.copyright) { 
    nasaPic.copyright = "default copyright"; 
} 

唯一の問題は未定義、nullである、または空の値は、この方法に進みます。私はそれがこの状況で好まれていると思う。それ以外の場合は、typeofを使用する必要があります。 nasaPic.copyrightが定義されていないので、

+0

をご覧ください。お返事をありがとうございます。しかし、私がこれを使用すると、SyntaxError:JSONの位置0に予期せぬトークンがあります エラーと意図ログのペーストビンは次のとおりです:http://pastebin.com/CA0Sxrv8 – user10369

+0

ボディを解析するときからですか? –

+0

私は体からそれを解析するときこれを得ました:http://i.imgur.com/VBPLalr.png – user10369

1

nasaPic.copyright.replace("undefined", "test");

は、あなたのために働くことはありません。定義されていないため、.replace関数は使用できません。代わりに、次の操作を行います。

if (!nasaPic.copyright) { 
     nasaPic.copyright = "test"; 
     ... 
+0

ねえ!お返事をありがとうございます。しかし、私がこれを使用すると、SyntaxError:JSONの位置0に予期しないトークンがあります エラーと意図ログのペーストビンは次のとおりです:http://pastebin.com/CA0Sxrv8 – user10369

関連する問題