运行我的节点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)
希望你能帮忙!
答案 0 :(得分:1)
如果您看到错误at new Script (vm.js:51:7)
,则表示您传递给vm.js Node module that communicates with the V8 Virtual Machine的自定义脚本中存在错误。
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