Javascript 错误:未处理的PromisejectionWarning:TypeError:args2[1]。join不是函数

Javascript 错误:未处理的PromisejectionWarning:TypeError:args2[1]。join不是函数,javascript,node.js,discord.js,Javascript,Node.js,Discord.js,我正在尝试制作一个音乐机器人,但每当我执行搜索命令时,就会弹出一个错误(如下所示),我该怎么做 我的代码是 const search = require('yt-search') module.exports.run = async (bot, message, args, ops) => { const prefix = "u!" const args2 = message.content.slice(prefix.length).trim().split(' ')

我正在尝试制作一个音乐机器人,但每当我执行搜索命令时,就会弹出一个错误(如下所示),我该怎么做

我的代码是

const search = require('yt-search')

module.exports.run = async (bot, message, args, ops) => {
const prefix = "u!"
const args2 = message.content.slice(prefix.length).trim().split(' ');
    search(args2[1].join(' '), function(err, res) {
        if (err) {
       
            console.log(err)
            return message.channel.send("Sorry, something went wrong")
       
        }
   
   
    let videos = res.videos.slice(0, 10);
 
    let resp = '';
    for (var i in videos) {
        resp += `**[${parseInt(i)+1}]:** \`${videos[i].title}\`\n`;
    }
 
    resp += `\n**Choose between \`1-${videos.length}\``;
 
    message.channel.send(resp)
   
    const filter = m => !isNaN(m.content) && m.content < videos.length+1 && m.content > 0;
 
    const collector = message.channel.createMessageCollector(filter);
 
    collector.videos = videos;
 
    collector.once('collect', function(m) {
        let commandFile = require('./play.js')
        commandFile.run(client, message, [this.videos[parseInt(m.content)-1].url])
    })
 
});
}

我不知道该怎么做才有帮助?

我想,您只需检查
args2
是否为数组:

const args2 = message.content.slice(prefix.length).trim().split(' ');
if (Array.isArray(args2)) {
   //search goes here
}
join()

如果要通过连接数组中的所有元素向
搜索
函数发送新字符串,则必须将其应用于数组:

search(args2.join(' '), function(err, res) {...})
如果只想发送分割数组中的第二项,只需发送:

search(args2[1], function(err, res) {...})

arg2[1]
是字符串,而不是数组<代码>搜索(args2[1],函数(err,res){
search(args2[1], function(err, res) {...})