如何访问expressjs给我的请求对象的原始内容?
var express = require('./node_modules/express');
var app = express.createServer();
app.post('/', function(req, res)
{
console.log(req.body); //says 'undefined'
});
app.listen(80);
express
除非添加中间件,否则默认值不会缓冲数据。一种简单的解决方案是按照下面@Stewe的答案中的示例进行操作,该示例将自己连接所有数据。例如
var concat = require('concat-stream');
app.use(function(req, res, next){
req.pipe(concat(function(data){
req.body = data;
next();
}));
});
不利的一面是,您现在已将所有POST正文内容作为连续的块移到RAM中,这可能不是必需的。另一个选项值得考虑,但取决于您需要在帖子正文中处理多少数据,而是将数据作为流处理。
例如,对于XML,您可以使用XML解析器,该解析器支持对XML(以大块形式出现)进行解析。XML
Stream
是这样一种解析器。您可以执行以下操作:
var XmlStream = require('xml-stream');
app.post('/', function(req, res) {
req.setEncoding('utf8');
var xml = new XmlStream(req);
xml.on('updateElement: sometag', function(element) {
// DO some processing on the tag
});
xml.on('end', function() {
res.end();
});
});
问题内容: 所以我在与node.js一起运行的server.js文件中有以下代码。我正在使用express处理HTTP请求。 我在终端中运行以下命令: 运行该server.js后,将输出以下内容。 所以req.body是。我阅读了其他有关类似问题的Stack Overflow帖子,其中由于正文解析器,内容类型不正确。但这不是问题,因为内容类型是application / json。 有什么想法如何
问题内容: 我一直在研究各种hibernate教程和示例,因为它们具有标识/主键属性,有些使用Java基本类型,有些使用包装器类型。 与 为什么以及何时将一个用作实体密钥? 问题答案: 从Hibernate的角度来看,它没有任何改变,因为Hibernate使用相同的Hibernate类型来表示它们。 然而,正如字节码忍者指出,你不能区分原始INT的默认值从分配的同时也有可能没有歧义(一个ID总是意
问题内容: 有没有办法从获取原始/原始JSON值? 问题: 现在是,但是我需要原始字符串。 有没有办法获得这个原始价值?另外,我无法更改创建方式(例如更改设置),因为它作为参数传递给我的课程… (参考:原始的NJsonSchema问题) 问题答案: 您无法获取原始字符串,无法识别日期字符串并将其转换为自身内部的结构。如果您这样做,则可以看到以下内容: 但是,您可以通过执行以下操作以ISO 8601
Rust通过限制智能指针的行为保障了编译时安全,不过仍需要对指针做一些额外的操作。 *const T和*mut T在Rust中被称为“裸指针”。它允许别名,允许用来写共享所有权的类型,甚至是内存安全的共享内存类型如:Rc<T>和Arc<T>,但是赋予你更多权利的同时意味着你需要担当更多的责任: 不能保证指向有效的内存,甚至不能保证是非空的 没有任何自动清除,所以需要手动管理资源 是普通旧式类型,也
这应该很简单,但我花了几个小时寻找答案,我真的卡住了。我正在构建一个基本的Laravel应用程序,并使用Guzzle来替换我目前提出的卷曲请求。所有CURL函数都使用主体中的原始JSON变量。 我试着创建一个工作的客户端,但是服务器回应‘无效请求’,我想知道我发布的JSON是否有问题。我开始怀疑你是否可以在Guzzle POST请求体中不使用原始JSON?当我从服务器接收到有效的响应时,我知道消息
我有一个问题,基本上是关于OpenShift Origin路线的澄清。 我设法在本地VMWare安装的CentOS上设置OpenShift Origin版本1.4.0-rc1。我还能够为 nginx 拉取和设置映像,pod 状态显示正在运行。也能够在服务endpoint上访问nginx。现在,根据文档,如果我想在托管系统之外访问此nginx实例,我需要创建一个路由,我也这样做了。 混乱出现在Ope