javascript - 关于自己的 REST API 和使用 3rd 方 API 获取的问题

标签 javascript node.js express

我正在开发一个后端来创建一个 Node js 服务器,以从 IGDB API 获取信息并显示特定信息。我对带有express和javascript的node js很陌生,所以也许我完全错过了一些东西,但它就在这里。

我想首先创建一个端点来通过 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 数据发送到搜索正文中的游戏(在本例中为 halo)。所以我已经可以使用这个端点了,但我必须在 Body 参数中对名称进行硬编码。 现在我有第二个 Javascript 文件,它链接到包含以下代码的 html 文件:

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

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

        })
  });

出于测试原因,我只有一个按钮来从端点获取 JSON 信息。

这里我只想获取端点,然后使用响应来显示 html 文件中的数据。正如我之前提到的,实际获取信息部分工作正常,但我现在遇到的问题是我现在不知道如何将搜索变量提供给我的/test 端点。我需要能够搜索用户通过 html 键入的游戏,所以我的想法是我必须能够以某种方式将变量从我的第二个 Javascript 文件传递​​到端点,但我不知道该怎么做,所以我在这里寻求帮助。

最佳答案

您可以在 Express 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" />

关于javascript - 关于自己的 REST API 和使用 3rd 方 API 获取的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54268732/

相关文章:

node.js - 表达 typescript react : Send a json response after sending the view from the same request

javascript - 上传图片不仅仅适用于 Android 原生浏览器

JavaScript 数组克隆

node.js - Mongoose/Node 如何直接在EJS文件中访问数据库

javascript - 从 css-loader 启用 CSS 模块不允许导入 node_modules CSS

node.js - 自动重定向登录用户nodejs Passport.js

node.js - 在nginx服务器上部署nodejs项目

javascript - 将对象数组从 EJS 模板传递到 Javascript 函数?

javascript - 用 SVG 图形替换 mat-icon

javascript - 重定向后选择选项