在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。

       

网上收集的解决方案 "在Node.JS中获取http发布表单数据"

您必须将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"