node.js - 如何使用流以块的形式发送 JSON 数据?
问题描述
我有一个要求通过调用 POST API 将 MongoDB 集合数据以块的形式从一个微服务发送到另一个微服务
所以,我试过这个
微服务 - A(接受数据并存储在数据库中)
app.post("/savedata", async(req, res) => {
console.log("Body => %o", req.body);
// insert data into db
res.status(200).send({status: "ok"});
});
微服务-B(从mongo获取数据并发布到微服务-A)
app.post("/postdata", async(req, res) => {
let db = await client.db("Student");
let collection = db.collection("details");
let query = [
{
"$project": {
_id:0
}
}
];
let mongoStream = collection.aggregate(query).stream();
const url = "http://microservice_A_HOST/savedata";
axios({
url: url,
method: "post",
data: mongoStream,
headers: {
'Content-Type': 'application/json'
}
}).then((response) => {
console.log("Resp %j =>", response.status);
}).catch(err => {
console.log("err => ", err);
});
res.status(200).send({status: "ok"});
});
我收到此错误
TypeError: data should be a string, Buffer or Uint8Array
at RedirectableRequest.write (/root/sample_code/node_modules/follow-redirects/index.js:84:11)
at AggregationCursor.ondata (_stream_readable.js:726:22)
at AggregationCursor.emit (events.js:210:5)
at addChunk (_stream_readable.js:308:12)
at readableAddChunk (_stream_readable.js:289:11)
at AggregationCursor.Readable.push (_stream_readable.js:223:10)
请帮帮我谢谢
解决方案
推荐阅读
- c# - 是否可以防止数据库文件被外部删除/修改而无需在 c# 中打开它?
- listview - Focus timepicker by tapping on image in a list in xamarin.forms
- typescript - 类型'功能组件
' 不可分配给类型 '("input" & FunctionComponent - android - Android EditText 复制/粘贴菜单问题
- c# - 列出对象的所有扩展
- python - 散景如何根据基础数据动态更改字形中的颜色
- php - PHP混合关联数组如何在foreach循环中获取值
- react-native - ESLint:(64:12)解析错误:意外的令牌,React Native 中的预期“}”
- java - 我在使用 printHexBinary 而不是 encodeHexString 之前的签名是否已关闭?
- apache-beam - PubsubIO , msg 超过最大大小,如何执行错误处理