对于类赋值,我需要创建一个类似Siri的程序,该程序接受命令和参数并从API返回一些数据,或者在一个特定情况下,从文本文件中读取并在该文件中执行命令获取特定歌曲的数据。我理解如何使用FS模块读取文件,但我不理解如何让它实际使用返回的内容使其成为命令和执行(本质上是myPlayList(我想要那样)。下面是到目前为止的代码,分为选择案例和函数以及文本文件中的内容。这是我的第一篇文章,并认为整个代码更好地给出了关于发生了什么的背景。谢谢你的时间和帮助。
var keys = require("./keys.js")
var twitter = require("twitter");
var omdb = require("request");
var spotify = require("spotify");
var fs = require("fs");
var liriCommand = process.argv[2];
var searchTitle = process.argv[3];
var twitterKeys = keys.twitterKeys;
var twitterUser = new twitter({
consumer_key: twitterKeys.consumer_key,
consumer_secret: twitterKeys.consumer_secret,
access_token_key: twitterKeys.access_token_key,
access_token_secret: twitterKeys.access_token_secret
});
//console.log(twitterUser); okay keys working
//Switch cases to call function based on liriCommand entered.
switch(liriCommand) {
case "my-tweets":
myTweets();
break;
case "spotify-this-song":
myPlayList();
break;
case "movie-this":
myMovie();
break;
case "do-what-it-says":
randomPick();
break;
}
//Function for pulling in last 20 tweets
function myTweets(){
twitterUser.get('search/tweets', {q: 'burgeoningbaker', count: 20}, function(error, tweet, response) {
if(error){
console.log(error);
}else{
console.log(tweet);
}
});
};
//Function for pulling in artist, song name, link to song and album with song via Spotify
function myPlayList(){
if (!searchTitle){
searchTitle = 'The Sign';
}
spotify.search({type: 'track', query: searchTitle}, function(err, data){
if (err){
console.log('Error occurred: ' + err);
return;
}
//Handle Data
var albumTrack = data.tracks.items;
for (i=0; i < albumTrack.length; i++){
console.log("Artist: " + albumTrack[i].artists[i].name);
console.log("Album Title: " + albumTrack[i].album.name);
console.log("Spotify Link: " + albumTrack[i].preview_url);
console.log("Track Title: " + albumTrack[i].name);
// } else if (!data && !err){
// myPlaylist('The Sign');
}
};
};
//Function for using request to get OMDB movie information from movie object
// Move Title, Year of release, Rating, Country, Language, Plot, Actors, Rotten Tomato Rating, URL
function myMovie(){};
// Function to fire off if typed do what it says
function randomPick(){
fs.readFile("random.txt", "UTF-8", function(error, data){
if (error){
console.log(error);
}
console.log(data);
});
};
这是文本文件内容
spotify-this-song,&#34;我想要那样&#34;
答案 0 :(得分:0)
嗯..奇怪的赋值指令 - 从文本文件中读取文本文件只是一个'命令'和一个参数。这是作业所要求的,还是您解释的方式?在我看来,这个应用程序作为一个命令行界面更有意义,你可以在其中提供歌曲名称,而不是更新.txt文件,然后调用应用程序。
无论如何,假设您描述的you want it that way
,您的函数调用实际上从未传递歌曲名称 - 请注意您的函数调用不带参数触发myPlaylist():
case "spotify-this-song":
myPlayList();
break;
和myPlaylist不带任何参数:
function myPlayList(){
if (!searchTitle){
searchTitle = 'The Sign';
}
此if
语句将始终评估为true,因为您从未传入searchTitle。请注意,您定义var searchTitle = process.argv[3];
的顶部可能表示该应用程序应设计为命令行界面。