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

时间:2018-02-19 22:19:52

标签: javascript node.js discord

运行我的节点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)
希望你能帮忙!

4 个答案:

答案 0 :(得分:1)

如果您看到错误at new Script (vm.js:51:7),则表示您传递给vm.js Node module that communicates with the V8 Virtual Machine的自定义脚本中存在错误。

vm.js中的

new Script只是评估您的代码。

因此,您需要弄清楚传递给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)

带有^插入符号的错误消息上方的部分会显示您自己代码中的错误点。

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

如果您的代码似乎100%正常但遇到此错误,例如@ maevanapcontact的箭头功能失败,那么您可能正在使用旧版本的V8和旧版本的V8 ; t支持ECMAScript功能。 Arrow functions didn't have complete support until Node version 6

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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

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

答案 3 :(得分:0)

以下帮助了我。

删除所有node_modules

rm -rf node_modules/

然后安装

npm install