在javascript中运行discord bot的代码时,新脚本(vm.js:51:7)出现语法错误

在javascript中运行discord bot的代码时,新脚本(vm.js:51:7)出现语法错误,javascript,node.js,discord,Javascript,Node.js,Discord,运行node index.js时出错 这是我的密码 const botconfig = require("./botconfig.json"); const Discord = require("discord.js"); const bot = new Discord.Client({disableEveryone: true}); bot.on("ready", async () => { console.log(`${bot.user.username} is online!`

运行node index.js时出错 这是我的密码

const botconfig = require("./botconfig.json");
const Discord = require("discord.js");

const bot = new Discord.Client({disableEveryone: true});


bot.on("ready", async () => {
console.log(`${bot.user.username} is online!`);
}};

bot.login(botconfig.token);
这是我的错误信息

SyntaxError: missing ) after argument list
at new Script (vm.js:51:7)
at createScript (vm.js:138:10)
at Object.runInThisContext (vm.js:199:10)
at Module._compile (module.js:624:28)
at Object.Module._extensions..js (module.js:671:10)
at Module.load (module.js:573:32)
at tryModuleLoad (module.js:513:12)
at Function.Module._load (module.js:505:3)
at Function.Module.runMain (module.js:701:10)
at startup (bootstrap_node.js:190:16)

希望你能帮忙

我和你有相同的错误,我已经用
函数()修复了它{}而不是
()=>

我真的不知道为什么它不能与箭头函数一起工作,但它为我做了这样的工作。

如果在新脚本(vm.js:51:7)中看到错误
,这意味着在传递给vm.js的自定义脚本中有错误

vm.js中的
新脚本
只是对代码进行评估

因此,您需要找出传递给V8虚拟机的代码中的故障。如果您直接运行文件(例如,
节点some/path/some_file.js
),您应该会得到一个指向实际故障的指针,看起来像这样:

YourPC:your-directory you$ node some/path/some_file.js
/some/system/path/your-directory./some/path/some_file.js:123
}};
 ^

SyntaxError: missing ) after argument list
    at new Script (vm.js:51:7)
    at createScript (vm.js:138:10)
    at Object.runInThisContext (vm.js:199:10)
错误消息上方带有插入符号的部分显示您自己代码中的错误点

在您的例子中,很容易发现:您有一个
}应该是
})


如果您的代码看起来100%正常,但遇到了此错误,比如@MaevanaContact的失败箭头函数,那么您可能正在使用旧版本的Node和不支持ECMAScript功能的旧版本V8

我发现在vm.js中添加一个引发错误的断点很有帮助。(单击堆栈跟踪中的文件名链接)。 重新加载页面,然后检查局部变量。 filename变量将给出导致错误的js文件的全名


不幸的是,这还不足以缩小确切的行范围,所以我最终删除了文件的一部分,直到它能够编译。从那以后,我可以缩小导致错误的范围。就我而言,我的IDE linter也没有给我任何提示。

以下内容对我有所帮助

删除所有节点单元模块

rm -rf node_modules/
然后安装

npm install

您可能需要更改
}
})现在我得到了这个错误:在Function.module中找不到module.\u在Function.module中解析文件名(module.js:555:15).\u在module.require(module.js:604:17)中加载(module.js:482:25)在require(internal/module.js:11:18)在对象中。(C:\Users\manni\Desktop\DiscordBot\index.js:1:81)at Module.\u在Object.Module.编译(Module.js:660:30).\u扩展..js(Module.js:671:10)at Module.load(Module.js:573:32)at tryModuleLoad(Module.js:513:12)at Function.Module.\u加载(Module.js:505:3)@RickyDom-确保您的
botconfig.json
文件与您的
index.js
文件位于同一目录中。您使用的是Node 6之前的Node版本吗?如果是这样,可能是因为。如果没有,则可能是您没有发现的arrow函数中存在语法错误,您在更改函数类型时修复了该错误。我使用的是Node的最新版本(9.7.1),并且我已从文档中复制/粘贴了该函数。我做了很多检查,但它仍然不能使用箭头函数