Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/458.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 关于自己的REST API和使用第三方API获取的问题_Javascript_Node.js_Express - Fatal编程技术网

Javascript 关于自己的REST API和使用第三方API获取的问题

Javascript 关于自己的REST API和使用第三方API获取的问题,javascript,node.js,express,Javascript,Node.js,Express,我正在开发一个后端来创建一个NodeJS服务器,从IGDBAPI获取信息并显示特定信息。我不熟悉使用express和javascript的node js,所以我可能完全错过了一些东西,但现在就开始了 我想从创建一个端点开始,通过IGDB API搜索游戏 `app.get('/test', (req, res) => { res.header("Access-Control-Allow-Origin", "*"); res.header( "Access-Co

我正在开发一个后端来创建一个NodeJS服务器,从IGDBAPI获取信息并显示特定信息。我不熟悉使用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文件中显示数据。正如我之前提到的,实际获取信息部分工作正常,但我现在遇到的问题是,我现在不知道如何将搜索变量提供给我的/测试端点。我需要能够搜索一个用户通过html键入的游戏,所以我的想法是,我必须能够以某种方式将变量从第二个Javascript文件传递到端点,但我不知道如何做到这一点,所以我在这里寻求帮助。

您可以在express API中添加一个查询参数。i、 e

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" />

您可以发送如下参数
app.get('/test/:searchkey',(req,res)=>{
。请阅读。