表达js表单数据

新手上路,请多包涵

有人可以告诉我推荐的(最新的)方式来快速获取 POSTed 表单数据。

很多教程/帖子等都在谈论 bodyParser 但它不再与 Express 捆绑在一起,其他博客等建议直接使用 urlencoded,但现在这也不可用。

试图找到有关这些框架或技术的准确信息让我费尽心思。

顺便说一句,我感兴趣的是非常简单的小型数据

原文由 Dave Pile 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 555
2 个回答

您应该安装 body-parser 通过 npm-install 。现在它作为一个单独的中间件出现。

之后在您的 app.js 中添加以下行

var bodyParser = require('body-parser');
app.use(bodyParser.json());
app.use(bodyParser.urlencoded());
// in latest body-parser use like below.
app.use(bodyParser.urlencoded({ extended: true }));

它将 post 请求解析为 object 。您将在 req.body 中获得变量。

在您的 post 请求处理程序中。

 app.post('/post',function(request,response){
   console.log(request.body) //you will get your data in this as object.
})

编辑 1

上面的答案是针对特别提出的问题,OP 正在寻找 bodyParser (已弃用),它不再是 express 的一部分。

由于问题的标题非常笼统并且答案不包括 form-data 的所有方面,我将把@StLia 的答案作为编辑。

主体解析器自述文件

这不处理多部分主体,因为它们复杂且通常很大。对于多部分主体,您可能对以下模块感兴趣:

原文由 Mritunjay 发布,翻译遵循 CC BY-SA 4.0 许可协议

您可以为此使用 express-formidable 模块。通过以下命令安装“express-formidable”

npm install express-formidable

简单的例子如下

const express = require('express');
const formidable = require('express-formidable');

var app = express();

app.use(formidable());

app.post('/upload', (req, res) => {
  //req.fields contains non-file fields
  //req.files contains files
  res.send(JSON.stringify(req.fields));
});

单击此处了解更多说明

原文由 HubballiHuli 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题