Ошибка "undefined" возникает, когда переменной присваивается значение undefined. Это может произойти, если функция или метод, которые должны вернуть значение, не возвращают его. В вашем коде ошибка "undefined" может быть вызвана использованием методов из библиотеки systeminformation без ожидания их завершения и получения результата.
Ошибка "NaN" возникает, когда происходят математические операции с операндами, не являющимися числами. В вашем коде ошибка "NaN" может быть вызвана делением на 0 или использованием некорректных числовых значений.
Чтобы исправить эти ошибки, вам необходимо использовать асинхронные функции и ожидать завершения методов из библиотеки systeminformation с помощью ключевого слова "await". Также стоит проверить значения, которые вы используете для математических операций, чтобы убедиться, что они являются числами.
Вот исправленный код вашей команды с использованием асинхронных функций и ожидания завершения методов:
```javascript
const { SlashCommandBuilder } = require('discord.js');
const si = require('systeminformation');
module.exports = {
data: new SlashCommandBuilder()
.setName('uptime')
.setDescription('Получает информацию об ОЗУ, процессоре и нагрузке ядер.'),
async execute(interaction) {
let osInfo = await si.osInfo();
let cpuInfo = await si.cpu();
let cpuLoad = await si.currentLoad();
let memInfo = await si.mem();
return interaction.reply({
content: `**Информация о системе:**
- Операционная система: ${osInfo.platform} ${osInfo.distro}
- Версия ядра: ${osInfo.kernel}
- Архитектура процессора: ${cpuInfo.arch}
- Название процессора: ${cpuInfo.manufacturer} ${cpuInfo.brand}
- Количество ядер: ${cpuInfo.cores}
- Загрузка ЦП: ${cpuLoad.currentload}%
- Использование ОЗУ: ${((memInfo.used / memInfo.total) * 100).toFixed(2)}%
- Общий объем ОЗУ: ${Math.round(memInfo.total / 1024 / 1024)} MB`
});
},
};
```
Кроме того, у вас указана неправильная версия Node.js (v20.5.0). Пожалуйста, обновите до актуальной версии (например, v14.17.6) для избежания возможных проблем совместимости.