Node.js 如何存储用户';s消息作为变量?

Node.js 如何存储用户';s消息作为变量?,node.js,discord.js,Node.js,Discord.js,我有一个非常简单的机器人,我正在为我和我朋友的服务器工作。我根据我所遵循的指南设置了一个简单的web scrape,以根据前缀命令(!)从dogpile图像搜索中提取GIF 我一直在尝试编辑代码以允许前缀后跟任何术语,以返回他们使用的术语的gif,而不是专门为每个命令编写代码 我想如果我能用变量替换字符串'test'我可以将它输入到我已有的代码中,但我似乎无法理解它。任何指导都将不胜感激 bot.on('message',message=>{ 设args=message.content.subs

我有一个非常简单的机器人,我正在为我和我朋友的服务器工作。我根据我所遵循的指南设置了一个简单的web scrape,以根据前缀命令(!)从dogpile图像搜索中提取GIF

我一直在尝试编辑代码以允许前缀
后跟任何术语,以返回他们使用的术语的gif,而不是专门为每个命令编写代码

我想如果我能用变量
替换字符串
'test'
我可以将它输入到我已有的代码中,但我似乎无法理解它。任何指导都将不胜感激

bot.on('message',message=>{
设args=message.content.substring(PREFIX.length).split(“”);
开关(参数[0]){
案例“测试”:
测试(信息);
打破
}
});
功能测试(消息){
变量选项={
url:“https://results.dogpile.com/serp?qc=images&q=“+”测试gif“,
方法:“获取”,
标题:{
“接受”:“测试/html”,
“用户代理”:“Chrome”
}
};
请求(选项、功能(错误、响应、响应库){
如果(错误){
返回;
}
$=cheerio.load(响应库);
var links=$(“.image a.link”);
var url=新数组(links.length).fill(0).map((v,i)=>links.eq(i).attr(“href”);
如果(!url.length){
返回;
}
//发送结果
message.channel.send(URL[Math.floor(Math.random()*url.length)];
});
}

您可以使用它作为命令名,而不是替换
'test'
字符串,然后使用
args
变量作为搜索词,如下所示:
!测试
。为此,您只需定义
args[0]
是命令名,然后将其余参数与消息一起传递给
test
函数

let args=message.content.slice(PREFIX.length).trim().split(“”);
让commandName=args.shift().toLowerCase();//使用args[0]作为命令名
开关(命令名){
案例“测试”:
测试(消息,args);
打破
}
功能测试(消息,参数){
设[…项]=args;
变量选项={
url:“https://results.dogpile.com/serp?qc=images&q=“+术语连接(“”),
方法:“获取”,
标题:{
“接受”:“测试/html”,
“用户代理”:“Chrome”
}
};
请求(选项、功能(错误、响应、响应库){
如果(错误){
返回;
}
$=cheerio.load(响应库);
var links=$(“.image a.link”);
var url=新数组(links.length).fill(0).map((v,i)=>links.eq(i).attr(“href”);
如果(!url.length){
返回;
}
//发送结果
message.channel.send(URL[Math.floor(Math.random()*url.length)];
});
}  

您可以将消息内容(不包括前缀)用作查询字符串。
请注意,如果不使用命令,则可以简单地运行消息处理程序中的所有内容

bot.on('message',message=>{
//总是忽略不需要的消息
if(message.author.bot | | |!message.startsWith(PREFIX))返回;
let query=message.content.slice(PREFIX.length.trim())
选项={
//添加查询字符串,如下所示:
url:“https://results.dogpile.com/serp?qc=images&q=“+query+”gif“,
...
}
//然后可以使用现有代码
请求(…)
})