我有一个基于API请求编写JSON文件的应用程序,我想在我收集和重新排列的对象中添加timeStamp。
所以我得到一个完整的请求,最终进入“变换器”以使数据适应我想要的布局,如下所示:
// Own Modules
var getSingleTicker = require('./getSingleTicker').getSingleTicker;
var getServerTime = require('./getServerTime').getServerTime;
async function transformTicker(ticker) {
var result = {};
var timeStamp = {};
var timeStamp = await getServerTime();
Object.keys(ticker).forEach((k) => {
result= {
name: k,
a: ticker[k].a,
b: ticker[k].b,
c: ticker[k].c,
v: ticker[k].v,
p: ticker[k].p,
t: ticker[k].t,
l: ticker[k].l,
h: ticker[k].h,
o: ticker[k].o,
n: timeStamp,
}
console.log(`[ADDED]: ${JSON.stringify(k)}`);
// });
});
return result;
}
module.exports = {
transformTicker,
}
正如您所看到的,该函数应该等待timeStamp请求的结果,然后将timeStamp追加到每个结果(有各种请求)为'n'。 但是,当我这样做时,timeStamp会打印到控制台:
[已添加]:“XLTCZUSD”{“unixtime”:1501573081,“rfc1123”:“星期二,8月1日17 07:38:01 +0000“} [已添加]:”XXRPZUSD“ {“unixtime”:1501573084,“rfc1123”:“星期二,8月1日07:38:04 +0000”} [已添加]:“DASHUSD”{“unixtime”:1501573085,“rfc1123”:“星期二,8月1日17 07:38:05 +0000“} [已添加]:”XZECZUSD“ {“unixtime”:1501573084,“rfc1123”:“星期二,8月1日07:38:04 +0000”} [已添加]:“XXBTZUSD”{“unixtime”:1501573080,“rfc1123”:“星期二,8月1日17 07:38:00 +0000“} [已添加]:”XREPZEUR“ {“unixtime”:1501573197,“rfc1123”:“星期二,1月17日07:39:57 +0000”}
但不会写入JSON。写作发生在main(app.js)中,然后有一堆模块请求>收集并最终转换来自REST Api的信息。
这是主要的:
async function worker() {
var tickerList = await getTickerList();
var tickerInfo = await getTickerInfo(tickerList);
var filename = `./modules/batches/${new Date().toISOString()}batch.json`;
fs.writeFile(filename, JSON.stringify(tickerInfo), (err) => {
if (err) throw err;
console.log("[SUCCESS]: All tickers processed successfully!");
});
}
worker();
tickerList =要查找
的代码数组完整请求从以下模块开始:
// Own Modules
// var tickerList = require('./getTickerList');
var getSingleTicker = require('./getSingleTicker').getSingleTicker;
function getTickerInfo(tickerList) {
if (tickerList) {
console.log('[SUCCESS]: Initiating the process');
return Promise.all(tickerList.map(getSingleTicker));
} else {
console.log('[FAILED]: There was a problem importing the list.');
}
}
module.exports = {
getTickerInfo,
}
然后到getSingleTicker:
// Own Modules
const getFromApi = require('./getFromApi').getFromApi;
const transformTicker = require('./transformTicker').transformTicker;
function getSingleTicker(tick) {
return getFromApi('Ticker', {pair: tick})
.then(transformTicker).catch((error) => {
console.log('[FAILED]: ', error);
});
}
module.exports = {
getSingleTicker,
}
最后到了transformTicker(我正在尝试添加timeStamp)。 时间戳来自:
var getFromApi = require('./getFromApi').getFromApi;
function getServerTime() {
return getFromApi('Time').then((res) => {
console.log(JSON.stringify(res));
}).catch((error) => {
console.log('[ERROR]: ', error);
});
}
module.exports = {
getServerTime,
}
您可以在此处找到整个项目:https://github.com/Ardzii/mongoNode
非常感谢您的帮助!