嘿我正在尝试使用express和node发送帖子请求,这是我的代码。
的index.html
<html>
<head>
<title>Test</title>
</head>
<body>
<form action="/form" method="POST" enctype="multipart/form-data">
<input type="text" name="imagename"></input>
<input type="submit" name="submit" value="submit"></input>
</form>
</body>
</html>
我的app.js文件如下:
var express = require('express');
var app = express();
var bodyParser = require('body-parser');
app.use(bodyParser.urlencoded({
extended: true
}));
app.use(bodyParser.json());
app.post('/form', function(req, res){
res.setHeader('Content-Type', 'application/json');
setTimeout(function(){
res.send(JSON.stringify({
imagename: req.body.imagename || null
}));
}, 1000);
});
现在我应该将输出作为imagename://在表单中添加值,如果为true或者为null。我总是得到一个空值。我试图记录req.body.imagename的值,我得到的是未定义的,而不是我在表单中插入的值。任何帮助都会受到欢迎。
答案 0 :(得分:6)
您必须将body-parser
添加到Express的应用中。
var app = express();
var bodyParser = require('body-parser');
// parse application/x-www-form-urlencoded
app.use(bodyParser.urlencoded({ extended: false }));
// parse application/json
app.use(bodyParser.json());
但是,我已经看到您已使用enctype='multipart/formdata'
声明了自己的表单。这通常用于进行文件上传,如果它真的是你想要的,你将需要使用another parser。
答案 1 :(得分:0)
您需要'body-parser'
个中间件,但忘记在express
应用中使用它。
app.use(bodyParser.urlencoded())
你不需要这个
enctype="multipart/form-data"