Express.js报错TypeError: app.listen is not a function 求助
问题解决:TypeError: app.listen is not a function
核心错误原因
你初始化Express应用时,没有调用express()函数创建实例,而是直接把express模块本身赋值给了app变量。express模块是一个构造函数,必须执行它才能生成具备listen、get等方法的应用实例。
修正步骤
修复Express应用初始化
将:const app = express;修改为:
const app = express();额外优化(可选但推荐)
- Discord.js的intents参数拼写错误:
GUILD_MESSSAGES多了一个S,应改为GUILD_MESSAGES - 在Discord.js v13及以上版本中,
message事件已被废弃,替换为messageCreate事件,避免后续版本兼容问题
- Discord.js的intents参数拼写错误:
修正后的完整代码:
const express = require("express"); const app = express(); // 添加()创建应用实例 app.listen(3000, () => { console.log("project is running!"); }) app.get("/", (req, res) => { res.send("Hello World!"); }) const Discord = require("discord.js") // 模块名小写符合npm规范 const client = new Discord.Client({intents: ["GUILDS", "GUILD_MESSAGES"]}); // 修正intents拼写错误 client.on("messageCreate", message => { // 替换为官方推荐的messageCreate事件 if(message.content === "wanna hear a joke") { message.channel.send("Shut up.") } }) client.login(process.env.token);
内容的提问来源于stack exchange,提问作者XenicsMadnessC
相关产品推荐
相关产品推荐

