【发布时间】:2020-07-22 22:04:15
【问题描述】:
我正在尝试在 Discord.js v12 中创建 !calculate 命令。
我正在使用mathjs,这是我当前的代码:
client.on('message', msg => {
if(!msg.content.startsWith('!')) return;
const args = msg.content.split(/[\ ]/g);
const cmd = args[0].slice(1).toLowerCase();
switch (cmd) {
case 'calculate':
case 'calc':
if(!args[0]) return msg.channel.send('Please input a calculation.');
let resp;
try {
resp = math.evaluate(args.join(''));
} catch (e) {
console.log(e);
}
const membed = new Discord.MessageEmbed()
.setColor('#ffaa00')
.setTitle('Math Calculation')
.addField('Input', `\`\`\`css\n${args.slice(1).join(' ')}\`\`\``)
.addField('Output', `\`\`\`css\n${resp}\`\`\``);
msg.channel.send(membed);
break;
但是,我收到以下控制台错误:
SyntaxError: Value expected (char 1)
at createSyntaxError (D:\Documents\test\Node.js\Discord.js\calculate\node_modules\mathjs\lib\expression\parse.js:1705:17)
at parseEnd (D:\Documents\test\Node.js\Discord.js\calculate\node_modules\mathjs\lib\expression\parse.js:1669:13)
at parseParentheses (D:\Documents\test\Node.js\Discord.js\calculate\node_modules\mathjs\lib\expression\parse.js:1655:12)
at parseNumber (D:\Documents\test\Node.js\Discord.js\calculate\node_modules\mathjs\lib\expression\parse.js:1626:12)
at parseObject (D:\Documents\test\Node.js\Discord.js\calculate\node_modules\mathjs\lib\expression\parse.js:1607:12)
at parseMatrix (D:\Documents\test\Node.js\Discord.js\calculate\node_modules\mathjs\lib\expression\parse.js:1532:12)
at parseSingleQuotesString (D:\Documents\test\Node.js\Discord.js\calculate\node_modules\mathjs\lib\expression\parse.js:1433:12)
at parseDoubleQuotesString (D:\Documents\test\Node.js\Discord.js\calculate\node_modules\mathjs\lib\expression\parse.js:1382:12)
at parseSymbol (D:\Documents\test\Node.js\Discord.js\calculate\node_modules\mathjs\lib\expression\parse.js:1270:12)
at parseCustomNodes (D:\Documents\test\Node.js\Discord.js\calculate\node_modules\mathjs\lib\expression\parse.js:1239:12) {
char: 1
}
嵌入看起来像这样:
【问题讨论】:
-
args 的内容是什么?
-
我的命令处理程序是:``` if(!msg.content.startsWith('!')) return;常量 args = msg.content.split(/[\]/g); const cmd = args[0].slice(1).toLowerCase(); switch (cmd) { ```如果那是你的目标?
-
不,我是在运行时询问
args的值,此时错误发生。
标签: javascript discord.js math.js