【发布时间】:2015-04-02 23:00:38
【问题描述】:
这就是我所拥有的:
server.route({
method: 'POST',
path: '/somePath/',
config: {
payload:{
output: 'stream'
}
});
我希望有一个简短的 XML,这就是我使用“流”而不是“数据”的原因。我使用FakeToe 作为XML 解析器,因为它是基于流的,在我的处理函数中我调用request.payload.pipe(parser)。我只想检查请求中是否有任何 POST 数据,如果没有,则将错误的请求发送回用户。
我曾考虑过在request.payload 流中获取数据的大小,但如果不先拉动然后将数据推回流中,这样做似乎并不简单,这是我不喜欢的。
当数据存在时,一切都正常工作,但如果不是,FakeToe 不会调用回调函数并显示流为空的错误。另外,我不想自己调用request.payload.read方法只是为了检查是否有任何数据。
在 hapijs 中有什么方法可以做到这一点?
【问题讨论】:
-
我想你有
content-length标题?您可以从request.headers进行检查,而不是读取有效负载 -
@tgo 感谢这个简单的解决方案!我想我需要了解 HTTP 基础知识!将此添加为答案,我会接受!
-
很高兴它有帮助。我已经回答了,谢谢。
标签: javascript node.js validation hapijs