Cannot find module 'node:events' with discord.js when deploy aws lambda
명령어를 채널에 보내는 봇을 만들고 serverless로 배포했는데 문제가 생겼다.
discord.js는 node v16부터 지원하는데 문제는 aws lambda는 v14까지만 지원한다.
discord.js를 사용하지 않는 다른 방법을 찾야아 한다.
문제의 코드
const { Client, Intents } = require("discord.js");
require("dotenv").config({ path: `./.env.${process.env.NODE_ENV}` });
class DiscordBot {
constructor() {
this.client = new Client({
intents: [Intents.FLAGS.GUILDS],
});
}
async notify(msg, channel) {
try {
this.client.once("ready", async () => {
console.log(`Logged in as ${this.client.user.tag}!`);
const channelObj = this.client.channels.cache.get(channel);
await channelObj.send(msg);
this.client.destroy();
});
this.client.login(process.env.DISCORD_BOT_TOKEN);
return true;
} catch (error) {
console.error(error);
return false;
}
}
}
discord.js 패키지를 사용하지 않고 discord API와 create message를 활용한다.
const superagent = require("superagent");
require("dotenv").config({ path: `./.env.${process.env.NODE_ENV}` });
class DiscordBot {
async notify(msg, channel) {
try {
const url = `https://discord.com/api/v8/channels/${channel}/messages`;
await superagent
.post(url)
.send({
content: msg,
})
.set({
authorization: `Bot ${process.env.DISCORD_BOT_TOKEN}`,
});
return true;
} catch (error) {
console.error(error);
return false;
}
}
}
Author And Source
이 문제에 관하여(Cannot find module 'node:events' with discord.js when deploy aws lambda), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@samnaka/Cannot-find-module-nodeevents저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)