Actuellement, mon instruction if/else ne fonctionne pas correctement car elle ne va jamais à la partie else de mon code. L'application node prend un argument (process.argv [3]) et l'utilise pour choisir l'API à appeler. process.argv [4] est utilisé pour spécifier ce qu'il faut rechercher (exemple "Hier") et fonctionne correctement si un argument est fourni. Cependant, je souhaite effectuer une recherche par défaut si l'utilisateur laisse cet argument vide. Je ne suis pas sûr de savoir pourquoi il ne va jamais à l'autre partie du code. Je suis nouveau à la programmation donc je suis sûr que c'est une erreur stupide de ma part, mais j'ai essayé de réécrire la déclaration et le même problème. Toute aide serait grandement appréciée.Le code node.js ne lit pas d'autre condition lorsque l'utilisateur ne spécifie pas un argument de recherche (lit uniquement if condition)
function getSpotifySongInfo() {
//4th node argument is reserved for the song user wants to select
var query = process.argv[3];
if (query !== "") {
//could make this less repeating code by passing the song as a parameter?
spotifyClient.search({ type: 'track', query: query, limit: 1 }, function (err, data) {
if (!err) {
console.log("=============Artist==Track==Album==PreviewURL=============================");
console.log("Artist: " + data.tracks.items[0].artists[0].name);
console.log("Track: " + data.tracks.items[0].name);
console.log("Album: " + data.tracks.items[0].name);
console.log("Preview URL: " + data.tracks.items[0].preview_url);
} else {
console.log(err);
}
});
} else {
//need to make this specific for Ace of Base. For some reason it's not changing the query to reflect default song. I've tried commenting this portion out and just testing w/ a simple console.log("test") and nothing...
query = 'The Sign';
spotifyClient.search({ type: 'track', query: query, limit: 1 }, function (err, data) {
if (!err) {
console.log("=============Artist==Track==Album==PreviewURL=============================");
console.log("Artist: " + data.tracks.items[0].artists[0].name);
console.log("Track: " + data.tracks.items[0].name);
console.log("Album: " + data.tracks.items[0].name);
console.log("Preview URL: " + data.tracks.items[0].preview_url);
} else {
console.log(err);
}
});
}
}
Eh bien ... pour l'instant, l'initialiseur est commenté, donc 'query === undefined' – theGleep
Bonne prise. J'ai commenté cette partie lors du formatage de la question à poser. Mon code actuel ne l'a pas commenté. Merci. –
Initialise 'query' comme suit:' query = process.argv [3] || 'Le signe'; 'Cela affectera la valeur de' process.argv [3] 's'il a une valeur, ou s'il n'a pas de valeur, une chaîne par défaut est assignée. De cette façon, vous pouvez omettre la construction 'if .. else'. Actuellement, le comportement décrit est possible uniquement lorsque 'query' a une autre valeur que la chaîne vide. Notez que 'undefined' est aussi une valeur. Avez-vous vérifié la valeur de cette variable? – Teemu