如何在express odeJS中从post请求中获取数据,并在提交后将用户重定向到html文件

how to get data from post request in express odeJS and redirect user to html file after submit

本文关键字:提交 用户 重定向 文件 html 数据 odeJS express 中从 post 获取      更新时间:2023-09-26

我刚刚红了这个帖子

我的快递代码是

var express= require('express');
var app= express();
var path= require('path');
app.use(express.static(path.join(__dirname,'public'))) //one way to server file
//app.use(express.static(__dirname,'/public'));
app.get('/',function(request, response){
    response.send("responde send");

})
app.get('/userName',function(request, response){
    response.send(request.query["userName"]);
})
app.post('/userName1',function(request,response){
    response.send(request.body.userName);
    console.log(request.body['userName']);
})

var server= app.listen(3001,function(){
    var host = server.address().address
    var port = server.address().port
console.log("listening "+port+ "port while the host"+host);
})

现在使用此代码处理get请求html是

<form action="/userName" method="get">
    <input type="text" name="userName">
    <input type="submit">
</form>

对于邮寄请求,我的html是

<form action="/userName1" method="post">
    <input type="text" name="userName">
    <input type="submit">
</form>

但是问题是如何获取请求后的数据??我试过这两种

 response.send(request.body.userName);
 console.log(request.body['userName']);

但是当这个链接代码和我学习的地方是一样的时候就不能工作了。还告诉我,当用户提交表单时,如何将用户重定向到任何html文件?

该链接已过时。ExpressJS现在使用body解析器作为一个单独的组件,这正是正确解析表单数据所需要的。

至于重定向,您可以使用javascript:

window.location = "https://www.google.com"

或者,在服务器上设置重定向标头:

res.setHeader("Location", "http://somewhere.com")

与相同

res.location("http://somewhere.com")

我使用的是Express4的Body Parser。因此,您需要将Body Parser分配给Express,然后,您可以执行以下操作:

app.post("userName1", function(req, res){
  var username = req.body.userName;
});

是用粗体的方法,信息发送的路径,表单输入的名称分别发送。

至于重定向,您可以使用:res.redirect("URL")或:

res.send("<script> JAVASCRIPT REDIRECT CODE </script>")

希望它对你有用:)

您必须使用低于的Like

    res.send("<script> window.location = 'http://localhost:8080'; </script>");

上面的代码对我有效。希望也对你有效。