對於類的分配,我需要創建一個Siri類似的程序,它接受一個命令和一個參數並從API返回一些數據,或者在一個特定情況下,從文本文件讀取並執行該文件中的命令以獲取特定歌曲的數據。我知道如何使用FS模塊讀取文件,但是我不理解如何讓它實際使用返回的內容來使其成爲命令並執行(本質上是myPlayList(我想這樣)。到目前爲止,代碼被分成了Select Cases and Functions以及文本文件中的內容。這是我的第一篇文章,並且看到整個代碼將更好地給出正在發生的事情的上下文感謝您的時間和幫助。使用Node.JS從文本文件發出命令
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的,這首歌曲, 「我想要它那個方式」
是的,myPlayList的初始功能是獲取您想在Spotify API中搜索哪個軌道的命令行參數。如果發出的命令沒有歌曲標題,則默認搜索The Sign。最後一個案例是我關注的焦點。當它被調用時,它應該查看文本文件併發出那裏應該搜索我想要的軌道的命令。這樣。 我不想發佈實際的作業指導,但可以,如果它會使事情更清晰。 – Matthew
right - 參考我以前的評論 - 您的myPlayList函數不能使用除命令行參數以外的參數。所以你的解決方案是修改它以便這樣做 – Conan
如果是這樣的話,比我感覺它仍然循環回到試圖訪問該文件並在其中發出命令。這裏是應該做什麼的指示... node liri.js spotify-this-song'<歌名在這裏>' *這將顯示以下有關您的終端/ bash窗口中歌曲的信息 * Artist (s) *歌曲的名字 *如果沒有提供歌曲,那麼您的節目將默認爲 *「The Sign」由Ace的基地 – Matthew