我尝试使用 body-parser 但它似乎不起作用
I tried using body-parser but it seems like it is not working
我在 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
这是在控制台中打印的:
服务器已启动
{}
您正在将 postname
请求重定向到 /
,请注意,这不会将 request data
转发到 /
根路由。
res.redirect("/")
将以 302
状态向客户端发送响应,然后客户端将向 /
路由发出 Get
请求,但没有任何数据。因此 request.body
在 Get
请求中总是有空数据。
您可以处理 postname
路由中的数据,然后将其重定向。
如果您想将数据从 postname
转发到 /
路由,那么您可以在 query string
.
中传递它
示例:
var app = 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"
res.render('home', { name: req.query.name });
});
app.post('/postname', function (req, res) {
var name = "ganesh"
console.log(req.body.name);
// handle the post data here
res.redirect("/?name=" + req.body.name);
});
app.listen(3000, function () {
console.log("server started");
});
我在 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
这是在控制台中打印的:
服务器已启动 {}
您正在将 postname
请求重定向到 /
,请注意,这不会将 request data
转发到 /
根路由。
res.redirect("/")
将以 302
状态向客户端发送响应,然后客户端将向 /
路由发出 Get
请求,但没有任何数据。因此 request.body
在 Get
请求中总是有空数据。
您可以处理 postname
路由中的数据,然后将其重定向。
如果您想将数据从 postname
转发到 /
路由,那么您可以在 query string
.
示例:
var app = 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"
res.render('home', { name: req.query.name });
});
app.post('/postname', function (req, res) {
var name = "ganesh"
console.log(req.body.name);
// handle the post data here
res.redirect("/?name=" + req.body.name);
});
app.listen(3000, function () {
console.log("server started");
});