#node.js #express
Вопрос:
Этот код предназначен для экспресс-сайта для моего бота discord, он нужен мне, чтобы поймать взаимные гильдии, но он выдает эту ошибку:
TypeError: botGuilds.find is not a function
at C:Usersnão te interessaDesktopprojetosbotbackendutilsutils.js:3:56
at Array.filter (<anonymous>)
at Proxy.methods.<computed> (C:Usersnão te interessaDesktopprojetosbotbackendnode_modulesmongooselibtypesarraymethodsindex.js:956:24)
at getMutualGuilds (C:Usersnão te interessaDesktopprojetosbotbackendutilsutils.js:3:28)
at C:Usersnão te interessaDesktopprojetosbotbackendroutesdiscord.js:11:28
at processTicksAndRejections (node:internal/process/task_queues:96:5)
который использует getMutualGuilds:
const router = require("express").Router()
const { getBotGuilds } = require("../utils/api")
const { getMutualGuilds } = require("../utils/utils")
const User = require('../database/schemas/Users')
router.get('/guilds', async (req, res) => {
const guilds = await getBotGuilds();
const user = await User.findOne({ discordId: req.user.discordId });
if (user) {
const userGuilds = user.get('guilds');
const mutualguilds = await getMutualGuilds(userGuilds, guilds);
res.send(mutualguilds);
}
});
module.exports = router
Получить код MUTUALGUILDS:
function getMutualGuilds(userGuilds, botGuilds) {
return userGuilds.filter((guild) => botGuilds.find((botGuild) => (botGuild.id === guild.id) amp;amp; (guild.permissions amp; 0x20) === 0x20))
}
module.exports = { getMutualGuilds }
Комментарии:
1. регистрируйте
botGuilds
содержимое и добавляйте его в Q.2. да, в нем отсутствует код ботГилдов…добавьте, пожалуйста
Ответ №1:
код ботГилдов:
const fetch = require("node-fetch")
const TOKEN = "token of my bot";
async function getBotGuilds() {
const response = await fetch('http://discord.com/api/v8/users/@me/guilds', {
method: 'GET',
headers:{
Authorization: `Bot ${TOKEN}`
}
})
return response.json()
}
module.exports = { getBotGuilds }