[英]I keep on getting this error after the message has sent "throw new Error('undefined is not a valid uri or options object.')"
這段代碼寫在 discord.js 中,旨在搜索使用命令輸入的任何內容?搜索 ______,它將 output 得到所需的結果,然后吐出新錯誤('undefined is not a valid uri or options object.')並停止工作,謝謝.
client.on("message", (message) => {
if (message.content.startsWith("?search")) {
var search = {
url: "http://results.dogpile.com/serp?qc=images&q=" + (message.content.replace('?search ', '')),
method: "GET",
headers: {
"Accept": "text/html",
"User-Agent": "Chrome"
}
};
};
request(search, function(error, response, responseBody) {
if (error) {
return;
}
$ = cheerio.load(responseBody);
var links = $(".image a.link");
var urls = new Array(links.length).fill(0).map((v, i) => links.eq(i).attr("href"));
console.log(urls);
if (!urls.length) {
return;
}
const embed = new MessageEmbed();
embed.setTitle("Search incommminggggg");
embed.setColor("#00ffff");
embed.setImage( urls[Math.floor(Math.random() * urls.length)]);
message.channel.send(embed);
});
});
拋出錯誤的地方缺少代碼,但我認為它在這一行:
request(search, function(error, response, responseBody) {...});
原因很簡單search
is undefined
。 當您的 if 語句不匹配時,就會發生這種情況。
if (message.content.startsWith("?search")) {
var search = {...};
};
如果message
不是以"?search"
開頭,則search
變量永遠不會設置並且將為undefined
。
確保以任一方式設置search
:
if (message.content.startsWith("?search")) {
var search = {...};
} else {
var search = {...};
};
或者,如果消息不是以"?search"
開頭,您不需要執行任何操作,則可以使用保護子句提前退出回調。
if (!message.content.startsWith("?search")) return;
var search = {...};
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.