2016-06-19 7 views
0

だから私は昨夜からこれを解読しようとしていました。私はDiscord.js APIを使用してDiscordチャットボットを開発しています。これまでのところとても良いですが、関連するサブディレクトリの最新の投稿をボットのチャットで数分ごとに発表するのはいいと思っていました。これは私のコードであるNode.js/Discord.js - なぜボットは未定義ですか?

error

var Discord = require("discord.js"); 
var bot = new Discord.Client(); 


var redditSubModule = "pics"; 

function getRedditPosts(bot, msg) { 
    var url = "http://www.reddit.com/r/" + redditSubModule + "/new/.json?limit=2"; 
    var request = http.get(url, function(response) { 
    var json = ''; 
    response.on('data', function(chunk) { 
     json += chunk; 
    }); 

    response.on('end', function() { 
     var redditResponse = JSON.parse(json); 
     redditResponse.data.children.forEach(function(child) { 
     console.log('https://www.reddit.com' + child.data.permalink); 
     bot.sendMessage(msg.channel,"https://www.reddit.com" + child.data.permalink); 
     }); 
    }) 
    }); 
    request.on('error', function(err) { 
    console.log(err); 
    }); 
setTimeout(getRedditPosts, 60000); 
} 
getRedditPosts(); 
だから今は、スクリプトがのredditのJSONのAPIのうち、該当するデータを取得するために管理し、私のNode.jsは、次のエラーを返す続けてきました

私はそれが何か非常に明白であるように感じますが、私はそれを過ぎて見ているようです。ボットが未定義の理由

答えて

0

あなたはgetRedditPostsは、属性(bot, msg)と呼ばれることを期待しているように思えるが、あなたは、あなたがbot変数としてundefinedを渡していない属性getRedditPosts();

したがって、基本的にそれを呼び出しています。 undefinedは、それには何の機能を持っていない、あなたはsendMessage

を呼び出すようにしようとしている、それはあなたがまた、ユーザーがコマンドを実行したとき()関数getRedditPostsを呼び出す必要がありますCannot read property 'sendMessage' of undefined

0

の意味です。次のようなもの:

bot.on('message', (msg)=>{ 
if(message.content.toLowerCase().startsWith("!redditcommand")) { 
    getRedditPosts(msg.client, msg) 
} 
} 

getRedditPosts()の代わりにコードの最後に。トリックを行う必要があります。

関連する問題