Как устранить ошибку: отсутствует переменная среды «TWITTER_CONSUMER_KEY»

Я новичок в программировании, поэтому меньше всего ожидайте, что я столкнусь с какой-либо ошибкой впереди. В этот день я закодировал какое-то приложение Node.js для публикации фидов Twitter в Discord, но не смог этого сделать.

Я не могу понять, почему я вижу эту ошибку, хотя я уже предоставил файл .env с необходимыми данными. Уже запущены необходимые зависимости вроде нпм установить гм, нпм и дотенв. Код ниже.

'use strict';

const fs = require('fs');
const commandExistsSync = require('command-exists').sync;
const logger = require('./bin/logger');
const { version } = require('./package.json');

logger.info(`Starting the twitter-to-discord application v${version}`);

// Extract all the env variables we will be using
const {
  TWITTER_CONSUMER_KEYS,
  TWITTER_CONSUMER_SECRET,
  TWITTER_ACCESS_TOKEN_KEY,
  TWITTER_ACCESS_TOKEN_SECRET,
  MONGO_URI,
  DISCORD_BOT_TOKEN,
  DISCORD_CMD_PREFIX,
  DISCORD_BOT_OWNER_ID,
  TEMP,
} = process.env;

// Exit if the env variable was not set or passed. None can be empty
function envTest(value, name) {
  logger.debug(`${name}=${value}`);
  if (!value) {
    logger.error(`Missing the environment variable '${name}'`);
    process.exit(1);
  }
}

envTest(TWITTER_CONSUMER_KEYS, 'TWITTER_CONSUMER_KEYS');
envTest(TWITTER_CONSUMER_SECRET, 'TWITTER_CONSUMER_SECRET');
envTest(TWITTER_ACCESS_TOKEN_KEY, 'TWITTER_ACCESS_TOKEN_KEY');
envTest(TWITTER_ACCESS_TOKEN_SECRET, 'TWITTER_ACCESS_TOKEN_SECRET');
envTest(MONGO_URI, 'MONGO_URI');
envTest(DISCORD_BOT_TOKEN, 'DISCORD_BOT_TOKEN');
envTest(DISCORD_CMD_PREFIX, 'DISCORD_CMD_PREFIX');
envTest(DISCORD_BOT_OWNER_ID, 'DISCORD_BOT_OWNER_ID');
envTest(TEMP, 'TEMP');

// Ensure we can access the temp directory
try {
  fs.accessSync(process.env.TEMP, fs.constants.F_OK);
} catch (err) {
  logger.error(`Unable to access the temp directory: ${process.env.TEMP}`);
  logger.debug(err);
  process.exit(1);
}

// Ensure all the commands we need to function exist via PATH
if (!commandExistsSync('ffmpeg')) {
  logger.error('\'ffmpeg\' is not available on the command line');
  process.exit(1);
}
if (!commandExistsSync('gm')) {
  logger.error('\'gm\' is not available on the command line');
  process.exit(1);
}

// Passed all the startup tests
// Continue to load application
require('./bin');
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
0
28
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Даже если вы установили dotenv, вы его не запускали. Вы должны иметь require('dotenv').config() в начале вашей программы.

Спасибо. Но теперь «gm» недоступен в командной строке — новая ошибка

TearHere 18.03.2022 02:56

Другие вопросы по теме

Могут ли внешний и внутренний интерфейс использовать один и тот же package.json?
Как программно проверить статус выпуска установленной версии node.js?
Войдите с именем пользователя или электронной почтой, используя узел, и отреагируйте
Azure "JsonWebTokenError: недопустимый алгоритм"
Каков наилучший способ управления аутентификацией пользователей и сеансами на nodejs?
Mongodb updateOne обновляет документ, но он возвращается, как будто это не так
Поскольку я не могу запустить await на верхнем уровне, я должен поместить его в асинхронную функцию — почему я могу вызывать эту асинхронную функцию напрямую?
Доступ к MS Graph «Не удалось получить URL-адрес личного сайта пользователя». Использование учетных данных клиента One Drive
Установка npm завершается сбоем из-за конфликтующей зависимости одноранговых узлов: [email protected]
Не могу понять, как выполнять асинхронные функции в NodeJS для MySQL