gpt4 book ai didi

node.js - req.body.name 未定义

转载 作者:太空宇宙 更新时间:2023-11-04 03:07:07 24 4
gpt4 key购买 nike

您好,我有一个表单正在发送到服务器,但是当它到达处理程序时。我尝试打印内容,但正文未定义。请有人告诉我我做错了什么。

<form action="/myactive" method="POST">
<input type="radio" name="gender" value="Male"> Male<br>
<input type="radio" name="gender" value="Female"> Female
<button type="submit" class="btn btn-primary btn-md">Medium</button>
</form>

在我的服务器端下面是:

var express = require('express');
var app = express();
var bodyparser = require('body-parser');

app.set('port', process.env.PORT || 3030);

app.use(bodyparser.urlencoded({ extended: false }));

app.use(express.static(__dirname + '/public'));

app.get('/', function(req, res) {
console.log('Index page');
});

app.post('/myaction', function(req, res){
console.log('Name: '+req.body.name); //returns undefined
res.end("Welcome");
});

app.listen(app.get('port'), function(){
console.log('Listening on port '+app.get('port'));
});

但在控制台上打印

Name is undefined.

最佳答案

您需要在表单中指定与服务器中的发布路由相同的操作。所以/myactive ->/myaction。此外,req.body 对象中没有 name 属性。当您在表单中指定 name="gender" 时,这意味着 gender 属性将附加到 req.body 对象

<form action="/myaction" method="POST">
<input type="radio" name="gender" value="Male"> Male<br>
<input type="radio" name="gender" value="Female"> Female
<button type="submit" class="btn btn-primary btn-md">Medium</button>
</form>

您可以使用以下代码从 route 检索所选性别

app.post("/myaction", function(request, response) {
console.log("Gender is:", request.body.gender);
response.sendStatus(200)
});

关于node.js - req.body.name 未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36809724/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com