Javascript 如何在NodeJS中循环通过http请求
我正在访问节点JS中的以下API请求:[代码片段1]Javascript 如何在NodeJS中循环通过http请求,javascript,node.js,loops,foreach,Javascript,Node.js,Loops,Foreach,我正在访问节点JS中的以下API请求:[代码片段1] var request = require('request'); var headers = { 'Connection': 'keep-alive', 'Accept': 'application/json, text/plain, /', 'User-Agent': 'Mozilla/5.0 (Macintosh; Ontel Mac OS X 11_2_3) AppleWebKit/537/36 (KHTML, like
var request = require('request');
var headers = {
'Connection': 'keep-alive',
'Accept': 'application/json, text/plain, /',
'User-Agent': 'Mozilla/5.0 (Macintosh; Ontel Mac OS X 11_2_3) AppleWebKit/537/36 (KHTML, like Gecko) Chrome/89.0.4389.128 Safari/537.36',
'Content-Type': 'application/json',
'Accept-Language': 'en, zh-TW;q=0.8,en-US;q=0.7'
};
const PublicKeyBase58Check = "BC1YLiFNARSWF6qtXM5acrS7q8VWPeeS2gycVBtqLALkE4c1V3kx4US";
const Username = "";
const NumToFetch = 9999999;
var dataString = '{"PublicKeyBase58Check":"' + PublicKeyBase58Check + '","Username":"' + Username + '", "NumToFetch": ' + NumToFetch + '}';
var options = {
url: 'https://api.bitclout.com/get-posts-for-public-key',
method: 'POST',
headers: headers,
body: dataString
};
function callback(error, response, body) {
if (!error && response.statusCode == 200) {
return body;
}
};
function getResponse(options) {
return new Promise((resolve, reject) => {
request(options, (error, response) => {
if (error) {
return reject(error);
}
return resolve(response);
});
});
}
async function triggerApi() {
result = await getResponse(options, callback);
var posts = JSON.parse(result.body);
//console.log(posts); //prints all posts
//prints each post
for (var post in posts.Posts)
{
posts.Posts[post] = { ...posts.Posts[post], PublicKeyBase58Check: PublicKeyBase58Check, Username: Username};
}
console.log(posts);
//prints out to file ->
'use strict';
const fs = require('fs');
let data = JSON.stringify(posts);
fs.writeFileSync('posts/posts-' + PublicKeyBase58Check + '.json', data);
}
triggerApi();
在前面提到的代码中,您可以注意到变量“PublicKeyBase58Check”是硬编码的,而我希望通过如下循环获取值:[代码片段2]
var PublicKeyBase58CheckValues = ["BC1YLiFNARSWF6qtXM5acrS7q8VWPeeS2gycVBtqLALkE4c1V3kx4US", "BC1YLiFNARSWF6qtXM5acrS7q8VWPeeS2gycVBtqLALkE4c1V3kashuagduys", "BC1YLiFNARSWF6qtXM5acrS7q8VWPeeS2gycVBtqLALkEHSYAjndsa781"];
for (var PublicKeyBase58Check in PublicKeyBase58CheckValues) {
... [Code snippet 1]
}
在哪里。。。是第一个代码段中所示的代码可执行程序。我的Javascript技能对Node JS来说不是很好,也不是很新,因此,我想知道如何循环PublicKeyBase58CheckValues来执行[Code snippet 1]
非常感谢您的帮助。您应该使用
for…of
循环遍历数组的值,而不是for…in
。因为…in给了你指数,这几乎不是你想要的。这不是100%的问题所在,你能发布一条错误消息吗,或者举一个例子,说明你迄今为止的尝试出现了问题?