为啥当我输入 node main.js 时我的不和谐机器人无法上线?

Posted

技术标签:

【中文标题】为啥当我输入 node main.js 时我的不和谐机器人无法上线?【英文标题】:Why doesn't my discord bot get online when I type node main.js?为什么当我输入 node main.js 时我的不和谐机器人无法上线? 【发布时间】:2021-11-29 14:55:32 【问题描述】:

所以我首先安装了 node.js,然后在命令提示符下键入 npm init,然后安装了 discord.js(安装 discord.js 时,它没有在项目中添加 node_modules 文件夹,我认为这就是问题的根源)。但是当我尝试让我的机器人在线(使用 node main.js 命令)时,我看到了这个错误消息: 错误:

Cannot find module 'discord.js'
Require stack:
- C:\Users\Cookie\Desktop\bot\main.js
←[90m    at Function.Module._resolveFilename (node:internal/modules/cjs/loader:933:15)←[39m
←[90m    at Function.Module._load (node:internal/modules/cjs/loader:778:27)←[39m
←[90m    at Module.require (node:internal/modules/cjs/loader:1005:19)←[39m
←[90m    at require (node:internal/modules/cjs/helpers:102:18)←[39m
    at Object.<anonymous> (C:\Users\Cookie\Desktop\bot\main.js:1:17)
←[90m    at Module._compile (node:internal/modules/cjs/loader:1101:14)←[39m
←[90m    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1153:10)←[39m
←[90m    at Module.load (node:internal/modules/cjs/loader:981:32)←[39m
←[90m    at Function.Module._load (node:internal/modules/cjs/loader:822:12)←[39m
←[90m    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:79:12)←[39m 
  code: ←[32m'MODULE_NOT_FOUND'←[39m,
  requireStack: [ ←[32m'C:\\Users\\Cookie\\Desktop\\bot\\main.js'←[39m ]

这是我的 package.json 代码:


  "name": "bot",
  "version": "1.0.0",
  "description": "test",
  "main": "main.js",
  "scripts": 
    "test": "echo \"Error: no test specified\" && exit 1"
  ,
  "author": "Cookie482",
  "license": "ISC",
  "dependencies": 
    "discord.js": "*"
  

和 main.js:

const Discord = require('discord.js');

const client = new Discord.Client();

client.once('ready', () => 
    console.log('bot is online');
);

client.login('bot-token');

【问题讨论】:

你的依赖中应该有一个版本作为discord js的key,重新安装试试 该依赖项是如何出现在 package.json 中的?在您执行npm install packagename 之后,依赖项通常不是这样的。你是手写的吗?删除该行并执行npm install discord.js 【参考方案1】:

正如 derpirscher 所说,从 package.json 中删除行 "discord.js": "*" 并运行 npm install discord.js

您的main.js 代码已过时。从 v13 开始,您需要指定意图。将const client = new Discord.Client(); 替换为

const client = new Discord.Client(
    intents: [
        Discord.Intents.FLAGS.GUILDS,
        Discord.Intents.FLAGS.GUILD_MESSAGES
    ]
);

或文档here中指定的其他一些意图

【讨论】:

以上是关于为啥当我输入 node main.js 时我的不和谐机器人无法上线?的主要内容,如果未能解决你的问题,请参考以下文章

为啥当我按下返回按钮时我的程序崩溃

为啥当我滚动我的 tabelview 单元格时我的 imageview 正在缩小?

为啥当我使用 QImage::scaled() 时我的内存消耗很大?

为啥当我使用“require”时我的变量未定义? [复制]

为啥当我使用箭头函数 onClick 时我的变量未定义?

为啥当我推送我的应用程序时我的 cli 会出错? [复制]