请求流Get+在Node.js中编辑后的JSON主体
Request Stream Get + Post edited JSON body in Node.js
我是Node.js的新手,正在做一个项目,我想使用Request从一个端点流式传输到另一个端点。我的目标是使用Request获取并发布使用管道流编辑的JSON正文。我知道这样做时,内容类型和内容长度将保留在POST标头中。然而,我想从第一个url将.forEach应用于正文中的所有JSON对象,并将它们发布到第二个url。
我不确定正确的格式,希望能澄清一下。
我知道基本语法是这样的:
request.get('URL').pipe(request.post('URL'));
到目前为止,我的最佳猜测是这样的:
request('FIRST_URL', function (error, response, body) {
body = JSON.parse(body);
body.forEach( function(arg) {
//return edited body
});
}).pipe(request.post('SECOND_URL'));
我是不是错过了什么?有更好的方法吗?
您可以编写自己的转换流。例如:
var Transform = require('stream').Transform;
var inherits = require('util').inherits;
function JSONTransform() {
Transform.call(this);
this._bufffer = '';
}
inherits(JSONTransform, Transform);
JSONTransform.prototype._transform = function(chunk, enc, cb) {
this._buffer += chunk;
cb();
});
JSONTransform.prototype._flush = function(cb) {
try {
var result = JSON.parse(this._buffer);
this._buffer = null;
// Do whatever transformations
// ...
this.push(JSON.stringify(result));
cb();
} catch (ex) {
cb(ex);
}
});
// Then just pipe
request.get('FIRST_URL')
.pipe(new JSONTransform())
.pipe(request.post('SECOND_URL'));
另一个可能值得考虑的稍微不同的解决方案是使用第三方流式JSON解析器模块,这可能适用于您的用例,也可能不适用于您。
相关文章:
- 如何在ng-reeat中使用ng-switch来编辑JSON API数据
- 如何在 JavaScript 中编辑外部 JSON 文件
- 两个用户如何协作编辑 JSON 文件
- JSON数据应该覆盖JSON模式吗?(通过jdorn/json编辑器使用模式和数据)
- 上传Excel xls,解析到Json,编辑Json输出pdf或Excel xls Nodejs Multer Angu
- 在php中编辑json字符串
- 在NodeJS中编辑JSON数据时出错
- 编辑器导出的json文件不起作用
- 在 java 脚本中编辑 json 文件
- 编码后如何编辑 JSON 数组
- 在哪里可以让客户端编辑JSON文件
- 我如何使用JavaScript编辑JSON中的属性
- 编辑JSON对象-寻找更好的功能方法
- 如何编辑 JSON 文件中的数据
- 无法在angularjs中显示名称和编辑json数据
- 在js/node.js中编辑json
- $.后编辑JSON格式.得到的功能
- 无法在客户端编辑json文件
- 在Angular中编辑JSON搜索结果
- 在节点 js 中通过循环编辑 JSON 文件