我正在使用 fs.readFileSync 读取 JSON 文件,并且对于获得的每个文档,我正在使用 client.post 进行休息 API 调用。一旦我得到响应,我想将接收到的内容放入另一个 JSON 文件中,该文件是输入 JSON 的副本,除了从 client.post 调用接收到的数据的附加元素。但是可能由于 client.post 的异步性质,我无法将元素添加到输出 JSON。我是 NodeJS 的新手。你能帮我在我失踪的地方吗?下面是代码和数据
数据:
[
{
"ticker": "CLYD"
},
{
"ticker": "EGH"
}
]
代码:
var fs = require('fs');
var Client = require('node-rest-client').Client;
var data = fs.readFileSync(__dirname + "/data/stocks.json", "utf8");
processData(data);
function processData (data) {
var obj = JSON.parse(data);
for (j = 0; j < obj.length; j++) {
obj[j].stockInformation = getValuesForTicker (obj[j].ticker.trim());
}
var jsonOutput = JSON.stringify(obj,null,'\t');
fs.writeFileSync(__dirname + "/data/response.json", jsonOutput);
};
function getValuesForTicker (ticker) {
/**
* More details and samples at https://www.npmjs.com/package/node-rest-client
*/
var client = new Client();
var values;
// set content-type header and data as json in args parameter
var args = {
data: { "ticker" : ticker},
headers: { "Content-Type": "application/json", "Accept" : "application/json" }
};
var responseToRequest = client.post("https://url.providing.response.as.json.content/", args, function (data, response) {
// parsed response body as js object
values = JSON.parse(JSON.stringify(data)).price;
});
return values;
};