簡體   English   中英

在消息發送“拋出新錯誤('undefined 不是有效的 uri 或選項 object。')”后,我不斷收到此錯誤

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM