До меня дошло, что практически все в моем колледже начали играть в популярную по версии New York Times видеоигру «Wordle». Стремясь узнать больше о Javascript, я решил попробовать воспроизвести Wordle. В этой статье я опишу свой процесс создания простого API с помощью Node.

Каждый день New York Times тайно назначает «Слово дня», и ваша задача — угадать его. В моей версии нам нужно было получить список пятибуквенных слов и назначить их случайным образом.

Моей первой мыслью было найти API в интернете с помощью RapidApi. Я хотел найти API, содержащий список пятибуквенных слов. Однако я молчаливо знал, что модель подписки на API, которую я нашел, позволяла совершать только 10 000 звонков в месяц. Хотя я бы использовал гораздо меньшее количество вызовов для своего собственного проекта, как относительный новичок в Node, я мог видеть стимул к прибыли, например, в дизайнере API, использующем рекурсию, чтобы быстро преодолеть этот предел и понести расходы.

Я решил использовать пакет fs для Node, чтобы прочитать текстовый файл, содержащий несколько тысяч пятибуквенных слов.

const fs = require('fs');
const data = fs.readFileSync('FILEPATH', 'utf8');

Текстовый файл был найден путем копирования и вставки случайного списка с сайта интернет-словаря. Когда я открыл текстовый файл, оказалось, что он содержит 5757 строк. Итак, нашим следующим шагом было выбрать слово.

const stringData = data.split("\n");
const selectedWord = stringData[Math.floor((Math.random() * 5757) + 1)];
console.log(selectedWord);

Тогда имело смысл добавить обратный вызов для отлова ошибок, на всякий случай.

`try {
const data = fs.readFileSync('FILEPATH', 'utf8');
const stringData = data.split("\n");
const selectedWord = stringData[Math.floor((Math.random() * 5757) + 1)];
console.log(selectedWord);
} catch (err) {
console.error(err);
}
// Use node YOUR_NODEJS_FILE_NAME.js to get output

Мой следующий шаг — попытаться экспортировать эту переменную selectedWord в мой интерфейс React, о чем я расскажу в другой статье. Это определенно на шаг выше моих способностей на тот момент. Если у вас есть какие-либо предложения о том, как импортировать переменную в документ React, я буду признателен за них!