在Node.JS中获取http发布表单数据
嘿,我试图发送请求使用快递和节点,这里是我的代码。
的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://值的forms添加如果true或否则为空。 我总是得到一个空值。 我试图loggingreq.body.imagename的值,我得到了未定义,而不是我插入的forms的值。 任何帮助将是appartiated。
您必须将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'
声明了你的表单。 这通常用于file upload,如果真的是你想要的,你将需要使用另一个parsing器 。
您需要'body-parser'
中间件,但忘记在express
应用中使用它。
app.use(bodyParser.urlencoded())
你不需要这个
enctype="multipart/form-data"