До меня дошло, что практически все в моем колледже начали играть в популярную по версии 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, я буду признателен за них!