Получение данных json из url

#discord.js

Вопрос:

Как я могу получить ответ JSON от URL? В моем случае URL https://api.mathjs.org/v4/?expr=2*2 -это ответ JSON, а затем, когда кто-то вводит тест!, он отправляет json/данные с URL-адреса.

Комментарии:

1. api не возвращает ответ json? просто текстовый, может быть, вы могли бы использовать node-fetch и использовать <response>.text()

Ответ №1:

Вот пример кода с использованием выборки узлов, я не могу гарантировать, что он будет хорошо работать

 const fetch = require('node-fetch')

(async () => {
const response = await fetch(`https://api.mathjs.org/v4/?expr=${encodeURIComponent(2*2)}`).then(r => r.text())
console.log(response)
})()

 

это логи 4 .

это пример кода, как я уже сказал, вам придется изменить его в соответствии с вашими потребностями, я использовал iife, поскольку метод выборки возвращает обещание

вы можете сделать:

 <message>.channel.send(`the result is ${response}`)
 

в качестве примера, адаптированного из приведенного выше кода

ps: вместо того, чтобы использовать api для математики, вы могли бы использовать пакет mathjs (который вы используете, просто его версия api)

Отредактировано: забыли о компоненте encodeURIComponent в URL-адресе запроса на извлечение, или вы получите Only absolute URLs are supported ошибку

Ответ №2:

Вам не нужен JSON только для того, чтобы получить значение параметра запроса из URL-адреса. Если вам просто нужно получить номер, вы можете попробовать это с помощью URLSearchParams:

 console.log(window.location.search); //output: '?expr=2*2'

var params = new URLSearchParams('?expr=2*2');

console.log(params.has('expr')); //output: 'true';
console.log(params.get('expr')); //output: '2*2';
 

вы получаете значение из params.get(‘expr’));

Комментарии:

1. хм, у него нет доступа к «окну» в node.js (как он его пометил discord.js, что означает, что они должны использовать node.js)

2. @ТИПИЧНОЕ окно изменения. местоположение.затем выполните поиск по строке параметров. параметры var = новые параметры urlsearch(‘?expr=2*2’);