新脚本的语法错误(VM.JS:51:7)在JavaScript中的Discord Bot运行代码时



我在运行节点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)

希望您能提供帮助!

如果您看到错误 at new Script (vm.js:51:7),则意味着您将自定义脚本中的错误传递给VM.JS,即与V8虚拟机通信的节点模块。

new Script在vm.js中只是评估您的代码。

因此,您需要确定传递给V8虚拟机的代码中的故障。如果您直接运行文件(例如node 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)

带有^ Caret的错误消息上方的部分显示您自己的代码中的故障点。

在您的情况下,很容易发现:您的}};应该是});

如果您的代码似乎100%罚款,但会遇到此错误,例如 @MaevanapContact的失败箭头功能,也许您使用的是带有旧版本的旧版本的V8的旧版本,而V8不支持该Ecmascript功能。箭头功能直到节点版本6。

才完全支持

我的错误与您相同,我通过使用function(){};而不是() =>修复了它。我真的不知道为什么它不适用于箭头功能,但是它为我做了这样的工作。

我发现在丢弃错误的vm.js中添加一个断点。(单击堆栈跟踪中的文件名链接(。重新加载页面,然后检查本地变量。文件名变量将给出导致错误的JS文件的全名。

不幸的是,这还不足以缩小确切的线路,因此我最终删除了文件的部分,直到它进行编译。从那里,我能够缩小导致错误的原因。就我而言,我的IDE Linter也没有给我任何提示。

以下对我有帮助。

删除所有node_modules

rm -rf node_modules/

然后安装

npm install

最新更新