Вопрос о собственном REST API и Fetch с сторонним API - PullRequest
0 голосов
/ 19 января 2019

Я работаю над бэкэндом для создания js-сервера узла, чтобы получать информацию из API IGDB и отображать конкретную информацию.Я новичок в узле js с помощью express и javascript, так что, может быть, я что-то упустил, но здесь все идет.

Я хочу начать с создания конечной точки для поиска игр через IGDB API

`app.get('/test', (req, res) => {
    res.header("Access-Control-Allow-Origin", "*");
    res.header(
        "Access-Control-Allow-Headers",
        "Origin, Content-Type, Accept"
    )
        fetch("https://api-v3.igdb.com/games", {
            headers: {
                "user-key": "MY_KEY",
                Accept: "application/json"
            },
            method:"POST",
            body:`fields name; search "halo"; where version_parent = null;`
        })
            .then((response) => {
                return response.json();
            })
            .then((response) => {
                res.send(response);
            })
            .catch((err)=>{
                console.log(err);
            })
});`

Это отправляет мне необработанные данные JSON в игру в теле поиска (в данном случае - ореол).Так что я уже могу использовать эту конечную точку, но мне нужно жестко указать имя в параметре Body.Теперь у меня есть второй файл Javascript, который связан с html-файлом, содержащим этот код:

    test.addEventListener('click',()=>{

    fetch("http://localhost:3000/test",{
    })
        .then((response)=>{
            return response.json();
        })
        .then((response)=>{

        })
  });

По причинам, связанным с тестированием, у меня просто есть кнопка для получения информации JSON из конечной точки.

Здесь я просто хочу получить конечную точку, а затем использовать ответ, чтобы показать данные в моем HTML-файле.Как я упоминал ранее, фактическое получение информации работает нормально, но проблема, с которой я сейчас столкнулся, заключается в том, что я не знаю, как передать переменную поиска в мою конечную точку / test.Мне нужно иметь возможность искать игру, которую пользователь вводит через html, поэтому я подумал, что мне нужно каким-то образом тоже иметь возможность передавать переменную из моего второго файла Javascript в конечную точку, но я не знаю, как это сделатьпоэтому я ищу здесь помощь.

1 Ответ

0 голосов
/ 19 января 2019

Вы можете добавить параметр запроса в ваш экспресс API.то есть

app.get('/test', (req, res) => {
    ...
    let search = req.query.search;
    fetch("https://api-v3.igdb.com/games", {
       ...
       body: 'fields name; search "' + search + '"; where version_parent = null;'
     })
     ...
});

А затем во втором сценарии JS;

test.addEventListener('click',() => {
    let search = document.getElementById("search-term").value;
    fetch("http://localhost:3000/test?search=" + search, ...})
    ...
});

При условии, что у вас есть вход в HTML-файл;

<input type="text" name="name" id="search-term" value="value" />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...