当前位置: 首页 > 面试题库 >

在Express中访问原始POST数据

王杰
2023-03-14
问题内容

我正在尝试在Express中编写一个愚蠢的简单Hello World程序,该程序输出有关当前HTTP请求的一些基本数据。

对于POST请求,我想查看原始POST正文。

const express = require('express');
const app = express();

function handleRequest(req, res) {
    console.log('\n-- INCOMING REQUEST AT ' + new Date().toISOString());
    console.log(req.method + ' ' + req.url);
    console.log(req.body);
    res.send('Hello World!');
}

app.all('/*', (req, res) => handleRequest(req, res));
app.listen(3000, () => console.log('Example app listening on port 3000!'));

当我关闭来自邮递员的任何类型的POST请求时,req.body设置为undefined。为什么是req.body空的?如何打印原始POST数据?我不需要POST正文的解析版本,只需原始数据即可。


问题答案:

为了读取发布请求的正文,您需要body-parser。
如果您还需要解析multipart / form-
data,则需要multer。

在npm安装它们之后:

const express = require('express');
const multer = require('multer');
const bodyParser = require('body-parser');
const upload = multer();
const app = express();

// create application/json parser
app.use(bodyParser.json());

// create application/x-www-form-urlencoded parser
app.use(bodyParser.urlencoded({ extended: false }));

function handleRequest(req, res) {
    console.log('\n-- INCOMING REQUEST AT ' + new Date().toISOString());
    console.log(req.method + ' ' + req.url);
    console.log(req.body);
    res.send('Hello World!');
}

app.post('/*', upload.any(), (req, res) => handleRequest(req, res));
app.all('/*', (req, res) => handleRequest(req, res));
app.listen(3000, () => console.log('Example app listening on port 3000!'));


 类似资料:
  • 我在这里遵循Spring启动教程: 使用rest服务的Spring boot教程 本教程工作正常,但是否有一种方法可以在原始JSON被解组(通过jackson JSON处理库)之前打印它以用于日志记录?

  • 通过原始访问日志,您可以查看访问过您网站的用户,而无需显示图形,图表或其他图形。 您可以使用“原始访问日志”菜单下载站点的服务器访问日志的压缩版本。 当您想要快速查看谁访问过您的网站时,这非常有用。 这是域名列表的Raw Access界面 - 在这里,进行原始日志的管理。 精心设计的日志可供下载。 您还可以配置删除或归档域的原始日志。

  • 介绍 有时候,浏览器会通过post发送很多数据。在webpy,你可以这样操作。 代码 class RequestHandler(object): def POST(self): data = web.data() # 通过这个方法可以取到数据

  • 问题内容: 这是flask代码: 这是: 该文档似乎非常清楚这应该工作: 形成 包含来自POST或PUT请求的已解析表单数据的MultiDict。请记住,文件上传不会在此处结束,而是在files属性中结束。 args 具有查询字符串的已解析内容的MultiDict。(URL中问号后的部分)。 价值观 一个同时包含form和args内容的CombinedMultiDict。 有什么想法我做错了吗?

  • 问题内容: 我似乎无法弄清楚如何使用WSGI访问POST数据。我在wsgi.org网站上尝试了该示例,但没有成功。我现在正在使用Python3.0。请不要推荐WSGI框架,因为这不是我想要的。 我想弄清楚如何将其放入fieldstorage对象。 问题答案: 假设您试图将POST数据仅获取到FieldStorage对象中:

  • 如何通过JSTL将数据打印到页面? 在上图中,我正在向控制器发送一个帖子。现在我可以轻松地访问查询字符串参数,例如将打印出测试参数。 但我不确定如何访问请求有效载荷中的数据。我尝试了${requestScope}对象,但数据似乎不在那里。 我不知道有多相关,但我使用Angular的进行调用。