【发布时间】:2020-06-28 08:20:15
【问题描述】:
我正在使用带有 express 的正文解析器,但它不工作,当我在控制台中打印 req.body 时它返回空对象。
var express = require('express');
var app = express();
var bodyParser = require('body-parser');
app.use(bodyParser.urlencoded({extended: true}));
app.set('view engine','ejs');
app.get('/' ,function(req,res){
var name = "ganesh"
console.log(req.body.name);
res.render('home',{name : name});
});
app.post('/postname' , function(req,res){
res.redirect("/");
});
app.listen(3000,function(){
console.log("server started");
};
这是我的 home.ejs 文件
<html>
<head>
<title>practice</title>
</head>
<body>
<h1>
hello<%= name %> This is the home page
</h1>
<form action="/postname" method = "POST">
<input type = "text" name="name">
<button>
go
</button>
</form>
</body>
我已经正确安装了 body-parser ejs 和 express
这是打印在控制台中的:
服务器已启动 {}
【问题讨论】:
-
我相信
redirect告诉 客户端 进行重定向 (expressjs.com/en/api.html#res.redirect)。 IE。客户端向您的服务器发出带有数据的 POST 请求。服务器告诉客户端“向 / 发出 GET 请求”。客户端向 / 发出没有数据的 GET 请求。为什么不将console.log(req.body.name);放在/postname路由中,因为这是您的数据发送到的地方,并确保它有效?然后你就可以弄清楚如何处理重定向了。 -
是的,我明白了,非常感谢☺
标签: javascript express body-parser