从html <form>标记接收表单数据的简单方法

我一直无法找到一种解决方案,只需从html表单接收数据并将其记录到控制台即可。我想念什么?

这是我的html代码:

<!DOCTYPE html>
<html>
   <head>
      <title>User Login</title>
      <link rel="stylesheet" type="text/css" href="login.css">
   </head>
   <body>
      <div class="login_wrapper">
         <div class="login_box">
            <h1>User Login</h1>
            <form id="login_form" method="post" action="/">
               <p id="username">username</p>
               <input type="text" name="username" placeholder="Enter username">
               <input type="submit" name="" value="Login">
            </form>
         </div>
      </div>
   </body>
</html>

我的服务器端代码:

var express = require('express');
const bodyParser = require("body-parser");

var app = express();

// middleware/routing
app.use(express.static(__dirname + '/public'));
app.use(bodyParser.urlencoded({ extended: true }));

app.get("/",function(request,response) {
    response.sendFile(__dirname + "/public/login.html");
});

app.post("/",(response,request)=>{
    console.log(request.params.username);
    // console.log("HI");
    response.end();
});

const port = process.env.PORT || 3000;
app.listen(port,() => {
    console.log(`Listening on port ${port}`);
});

单击登录按钮时,我一直遇到的错误是: TypeError: Cannot read property 'username' of undefined

我只想记录在用户名输入字段中输入的内容(我想这是一个JSON对象?)。

jyc2410 回答:从html <form>标记接收表单数据的简单方法

问题在于请求,响应参数的顺序。在您的代码中顺序相反。

此外,您还必须使用request.body来访问发布的表单字段。

以下是您需要的POST处理程序修改。希望对您有所帮助。

app.post("/",(request,response)=>{
    console.log(request.body.username);
    // console.log("HI");
    //response.end();
});

本文链接:https://www.f2er.com/3126929.html

大家都在问