在Express中编写发帖请求以创建具有给定变量的列表

时间:2019-01-24 14:12:28

标签: javascript node.js express post

我正在尝试弄清楚如何使用Express的“发帖请求”列出列表。我正在通过api检索视频游戏数据,我想使用到达那里的数据并将特定方面添加到列表中。 例如:

let name = localStorage.getItem("name");
let id = localStorage.getItem("id");
let cover = localStorage.getItem("cover");
fetch("http://localhost:3000/genre?search=" + id, {})
        .then((response)=>{
            return response.json();
        })
        .then((response)=>{
            let GenreHelper=[];
            for(let n=0;n<=response.length;n++) {
                GenreHelper[n]=response[n]["name"];
                document.getElementById("genre").innerText=GenreHelper.toString();
            }
        });

在这里,我得到特定游戏的ID,名称,封面和体裁,我想将名称和封面作为变量提供给新的html网站以列出列表。 我在html中编码了一个按钮,以测试发布操作

<form id="form" action="/addtolist" method="POST">
<button type="submit">Submit</button>
</form>

,我使用了一个简单的Post请求,看看它是否有效。

app.post('/addtolist',(req,res)=>{
console.log("Test");
});

这确实有效,但是我不知道如何使用Post请求来获取变量名,例如将其传递到新的html页面或新的javascript文件中。

1 个答案:

答案 0 :(得分:0)

我会发表评论,但没有足够的观点来做到这一点。但是,发布数据通常可以在req.body上找到。从您的html看来,您似乎没有发送任何参数。如果您使用的是express,请安装body-parser

//in app.js
var bodyParser = require('body-parser')
app.use( bodyParser.json() );       // to support JSON-encoded bodies

//then in your route
app.post('/addtolist',(req,res)=> {
  const name = req.body.name; //req.body contains the values you send
  const id = req.body.id;
});

您需要确保您正在发送尚未使用的值。 您可以像在GET示例中一样使用fetch,并在按钮单击时发送POST。